Ciertamente es una buena pregunta y estoy bastante seguro de que muchas personas tienen dudas al respecto … Entonces, descubramos qué son …
Primero, ¿qué es una lista vinculada?
En informática, una lista vinculada es una colección lineal de elementos de datos, llamados nodos, que apuntan al siguiente nodo mediante un puntero. Es una estructura de datos lineal que consiste en un grupo de nodos que juntos representan una secuencia.
- Cómo recuperar el valor seleccionado por el usuario para el botón de opción en php
- ¿Hay alguna razón (excluyendo tener un gran conocimiento) para aprender jQuery además de un marco como Vue.js o React.js? ¿Se pueden combinar de alguna manera? En caso afirmativo, ¿es una buena práctica?
- ¿Cuáles son mis mejores opciones para un servidor web asequible y confiable para mis proyectos Rails y WordPress?
- ¿Dónde puedo encontrar cursos avanzados de JavaScript, HTML, CSS, Node.JS y React? Encontré cursos para principiantes y todos estaban bien, pero quiero aprenderlos más a fondo.
- ¿Cómo es ser desarrollador?
Al declarar una lista vinculada, a menudo te encuentras tanto con el nodo * siguiente como con el nodo * siguiente y creo que tú también los encontraste en ese momento …
Entonces, ¿cuál es el nodo * siguiente?
Teniendo en cuenta el código que figura a continuación:
Nodo de estructura {
datos int;
struct Node * next;
};
“struct Node * next” es una variable de puntero (valor indefinido) del tipo de datos “Node” .
La idea es que su lista consta de n ocurrencias de la estructura que llamó “Nodo”. Necesita un puntero al PRIMERO de ellos ya que este puntero le indica la ubicación de la memoria de esta primera estructura (generalmente solicita el espacio para esto manualmente con malloc). La estructura de este bloque de memoria está definida por su estructura “Nodo”. Le dice que primero hay algunos bytes para el int (sizeof int le dice cuánto exactamente) y luego hay algunos bytes para una dirección (este es su puntero “siguiente”). En el último elemento de su lista vinculada, generalmente usa nulo como valor para el siguiente. De esta manera, puede verificar si su elemento activo es el último. Para agregar un elemento a su lista, debe asignarle manualmente la memoria y cambiar el siguiente puntero del último elemento a la ubicación de memoria que malloc proporcionó. (Y no olvide establecer el siguiente puntero del elemento que acaba de crear como nulo).
De esta manera funciona una lista vinculada. ¡Espero que esto ayude un poco!
Entonces, ¿cuál es el nodo * siguiente?
Teniendo en cuenta el código que figura a continuación:
typedef struct node
{
datos int;
nodo * siguiente;
};
“Nodo * siguiente” le indicará que tiene una variable de puntero para almacenar la dirección de un nuevo nodo siguiente que tenga el mismo tipo de datos.
La idea detrás de esto es que tendrá que recorrer una lista vinculada de la forma n->next->next->next...
y así sucesivamente. Por lo tanto, el next
debe apuntar a otro node
, de lo contrario no podrá ver el siguiente int
después de eso.
Puede ver los node
como cuadros pequeños que contienen un int
(o cualquier otro dato) y una referencia al siguiente cuadro pequeño. Si apunta directamente a los datos, no podrá obtener el cuadro después de eso (¡son solo datos tontos!), ¡Debe apuntar a los cuadros ( node
s)!
Aquí hay una imagen que podría ayudar a ver a qué me refiero.
Para concluir…
Ambas declaraciones traerán el mismo resultado ya que son casi una misma. Las diferencias menores que existen entre ellos se explican anteriormente.
Espero que tengas claras tus dudas ahora …
¡¡¡Disfruta aprendiendo!!!