Utente:DavideD/Nodo (informatica)

Un nodo è un unità di base utilizzata nell’informatica. I nodi sono periferiche o locazioni di dati presenti su un network più largo. Dispositivi come personal computer, cellulari o stampanti sono nodi. Quando definiamo i nodi presenti su internet un nodo è qualunque cosa abbia un indirizzo IP. I nodi sono una parte individuale di strutture dati più complesse come le liste concatenate e le strutture ad albero. I nodi contengono dei dati e possono anche contenere dei link ad altri nodi. Link tra i nodi sono spesso implementati tramite puntatori.

Nella teoria dei grafi, l'immagine mostra una visione semplificata di un network dove ogni numero rappresenta un nodo.

Nodi ed Alberi modifica

 
Un semplice albero binario di dimensione 9 ed altezza 3, con un nodo radice il cui valore è 2. L'albero mostrato è sbilanciato e non è ordinato.

I nodi sono spesso ordinati in strutture ad albero. Queste strutture sono alberi binari.

Un nodo rappresenta le informazioni contenute in una singola struttura. Questi nodi possono contenere un valore o una condizione o possibilmente servire come un’altra struttura dati indipendente. I nodi sono rappresentati da un singolo nodo padre. Il punto più alto in una struttura ad albero è chiamato il nodo radice, che non ha un nodo padre, ma serve come genitore per tutti i nodi sottostanti nell’albero. L’altezza di un nodo è determinata dalla sua distanza tra il nodo radice ed il nodo foglia più lontano e l’altezza dell’albero è pari all’altezza del nodo radice. La profondità di un nodo è determinata dalla distanza fra quel particolare nodo ed il nodo radice. Il nodo radice ha una profondità pari a 0. Un indirizzo IP uso questo tipo di sistemi di nodi per definire la sua posizione in un network.

Definizioni modifica

  • Figlio: Un nodo figlio è un nodo che si estende da un altro nodo. Per esempio, un computer con accesso ad internet può essere considerato come un nodo figlio di un nodo rappresentante l’internet. La relazione inversa è quella di un nodo padre. Se un nodo C è figlio di un nodo A, allora A è il nodo padre di C.
  • Grado: Il grado di un nodo è pari al numero di figli di quel nodo.
  • Profondità: La profondità di un nodo A è pari alla distanza di A dal nodo radice. Il nodo radice ha una profondità pari a 0.
  • Margine: La connessione tra i nodi.
  • Foresta: Un set di alberi.
  • Altezza: L’altezza di un nodo A è pari alla distanza maggiore tra figli in un nodo foglia.
  • Nodo interno: Un nodo con almeno un figlio.
  • Nodo radice: Un nodo distinto dal resto dei nodi dell’albero. Solitamente viene rappresentato come il nodo più alto dell’albero.
  • Nodi parenti: Sono i nodi collegati allo stesso nodo padre.

Linguaggi di Markup modifica

Un altro uso comune degli alberi di nodi è nello sviluppo web. Nella programmazione il linguaggio XML è usato per comunicare informazioni tra programmatori e computer. Per questo motivo l’XML è usato per creare protocolli di comunicazione comuni utilizzati in applicazioni da ufficio e serve come base per lo sviluppo di linguaggi web moderni come l’XHTML. Anche se approcciato in modo simile da un programmatore, HTML e CSS sono solitamente i linguaggi favoriti per sviluppare pagine web. Mentre XML, HTML e XHTML provvedono a linguaggio ed espressione, il DOM serve come traduttore.

Tipi di Nodo modifica

Tipi di nodi diversi sono rappresentati da interfacce specifiche. In altre parole, il tipo di nodo è definito da come esso comunica con gli altri nodi. Ogni nodo ha una proprietà che specifica il tipo di nodo ad esempio, parente o foglia. Per esempio, se la proprietà del nodo è la sua proprietà costante, questa specifica il tipo di nodo. Quindi se la proprietà di tipo del nodo è la costante ELEMENT_NODE potremo sapere che questo nodo oggetto è un oggetto di topo Elemento. Questo oggetto usa l’interfaccia Elemento per definire metodi e proprietà di quel particolare nodo.

Diversi tipi di nodo definiti dal W3C World Wide Web Consortium:

  • Document: Rappresenta l’intero documento (Il nodo radice dell’albero DOM).
  • DocumentFragment: Rappresenta una versione “leggera” dell’oggetto Document, in grado di contenere una porzione di un documento.
  • DocumentType: Provvede un interfaccia alle entità definite per il documento.
  • ProcessingInstruction: Rappresenta un istruzione processuale.
  • EntityReference: Rappresenta un riferimento a un entità.
  • Element: Rappresenta un elemento.
  • Attr: Rappresenta un attributo.
  • Text: Rappresenta il contenuto testuale presente in un elemento o attributo.
  • CDATASection: Rappresenta una sezione CDATA in un documento (testo che non verrà considerato dal parser).
  • Comment: Rappresenta un commento.
  • Entity: Rappresenta un entità.
  • Notation: Rappresenta una notazione dichiarata nel DTD.
NodeType Named constant
1 ELEMENT_NODE
2 ATTRIBUTE_NODE
3 TEXT_NODE
4 CDATA_SECTION_NODE
5 ENTITY_REFERENCE_NODE
6 ENTITY_NODE
7 PROCESSING_INSTRUCTION_NODE
8 COMMENT_NODE
9 DOCUMENT_NODE
10 DOCUMENT_TYPE_NODE
11 DOCUMENT_FRAGMENT_NODE
12 NOTATION_NODE

Nodi Oggetto modifica

Un nodo oggetto è rappresentato da un singolo nodo in un albero. Può essere un nodo elemento, attributo, testo o qualsiasi tipo descritto nella sezione “tipi di nodo”. Tutti gli oggetti possono ereditare proprietà e metodi per interfacciarsi con nodi padre e figlio, ma non tutti gli oggetti ne hanno. Per esempio, nodi di testo che non possono avere nodi figli.

Oggetti nell’albero DOM possono essere chiamati e manipolati usando metodi sugli oggetti. L’interfaccia pubblica di un DOM è specificata nella sua application programming interface (API). La storia del Document Object Model è legata alla storia delle “browser wars” dei lontani anni ’90 tra Netscape Navigator e Microsoft Internet Explorer e a quella tra Javascript e JScript i primi linguaggi di scripting ad essere implementati ampiamente nei motori di layout dei browsers.

External links modifica