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.

Nodi ed Alberi
modificaI 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
modificaUn 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
modificaTipi 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
modificaUn 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- Data Trees as a Means of Presenting Complex Data Analysis by Sally Knipe
- STL-like C++ tree class
- Description of tree data structures from ideainfo.8m.com
- WormWeb.org: Interactive Visualization of the C. elegans Cell Tree - Visualize the entire cell lineage tree of the nematode C. elegans (javascript)