Definición de nodo
Del latín nodus, el término nodo tiene distintos usos en los campos de la astronomía, la física y la informática.
Para la astronomía, un nodo es cada punto opuesto en que la órbita de un astro corta la eclíptica. Puede hablarse de nodo ascendente (cuando el cuerpo sigue la órbita pasando del sur al norte) o nodo descendente (si pasa en la dirección contraria). Dichos nodos son diametralmente opuestos.
En el ámbito de la física, un nodo es un punto que permanece fijo en un cuerpo vibrante. Se trata, por lo tanto, del punto de una onda estacionaria que tiene una amplitud cero en cualquier momento. Por ejemplo: en una cuerda que vibra, los nodos suelen ser los extremos.
Otra utilización del concepto de nodo se encuentra en la electrónica, donde se trata de un medio de conexión entre dos o más elementos de un circuito.
El acrónimo NO-DO proviene de Noticiero Documental y era el nombre de un informativo de corta duración que los cines españoles debían exhibir de manera obligatoria antes de las películas entre 1942 y 1981.
Un nodo, en informática, es un componente que forma parte de una red. En otras palabras, tanto si se trata de Internet como de Intranet (utilizada en ámbitos cerrados, con acceso limitado a los usuarios autorizados), cada servidor u ordenador constituye un nodo y se encuentra conectado a otro u otros nodos.
La programación informática considera que un nodo es cada uno de los elementos de una lista enlazada, un árbol o un grafo en una estructura de datos. Cada nodo tiene sus propias características y cuenta con varios campos; al menos uno de éstos debe funcionar como punto de referencia para otro nodo.
La lista enlazada
Se trata de una estructura de datos que puede utilizarse para la implementación de nuevas estructuras (tales como las colas, las pilas y sus derivados) y está formada por una serie de nodos que almacenan, además de la información deseada, un enlace, un puntero o una referencia al nodo que lo precede, al posterior, o bien uno a cada uno. La ventaja fundamental de una lista enlazada en comparación con un vector convencional es que sus elementos no presentan un orden rígido ni relacionado con el que tuvieron al momento de ser almacenados, sino que éste depende del enlace que posee cada nodo, y puede ser modificado cuando así se desee.
Las listas enlazadas son un tipo de dato que se autorreferencia, dado que poseen una conexión con otro elemento que pertenece al mismo tipo. Cabe mencionar que, si bien posibilitan la intersección y la eliminación de sus nodos, no permiten acceder a ellos de forma aleatoria. Entre los distintos tipos de lista enlazada, se encuentra la simple, la doblemente enlazada, la circular y la doblemente circular.
Son muchos los lenguajes de programación a través de los cuales es posible implementar una lista enlazada; algunos ejemplos son Scheme y Lisp, que ofrecen objetos de este tipo, así como métodos para su cómoda administración. Dentro del grupo de los lenguajes de tipo imperativo y de los orientados a objeto, existen también herramientas que facilitan su creación.
Resulta interesante señalar que un nodo puede contener otra lista; esta práctica, aunque muy compleja e innecesaria para una aplicación sencilla, puede resultar extremadamente útil y permitir un nivel muy alto de optimización. Lisp fue el primer lenguaje en implementar este modelo, pero con el tiempo se convirtió en un aspecto común de la programación de tipo funcional.
Por último, las listas enlazadas pueden ser creadas de forma dinámica (o sea, en tiempo de ejecución) o a mano, mediante la carga por parte de una persona, y son muy comunes en las bases de datos de gran volumen.