Esta publicación proporciona una descripción general de algunas técnicas disponibles para implementar una lista vinculada en el lenguaje de programación C++.

Sabemos que cada nodo de una lista enlazada contiene un solo campo de datos y un puntero al siguiente nodo de la lista.

 
Los nodos de la lista enlazada se asignan en la memoria del heap. Podemos usar el operador new en C++ para la asignación de memoria dinámica y el delete operador para desasignar la memoria asignada.

Practice this problem

 
Hay varios métodos para construir una lista enlazada individualmente. Cada uno se cubre en detalle a continuación:

1. Método ingenuo

Una solución simple sería asignar memoria para todos los nodos individuales de la lista vinculada, establecer sus datos y reorganizar sus punteros para construir la lista completa.

Linked List Implementation

Descargar  Ejecutar código

2. Línea única

Podemos escribir el código anterior en una sola línea pasando el siguiente nodo como argumento al newNode() función:

Linked List Construction

Descargar  Ejecutar código

3. Método genérico

Ambos métodos anteriores no son prácticos cuando el número total de nodos aumenta en la lista enlazada. Si las claves se dan en cualquier contenedor, como una array, un vector o un conjunto, podemos construir fácilmente una lista enlazada recorriendo el contenedor, como se muestra a continuación:

Descargar  Ejecutar código

4. Solución estándar

La solución estándar agrega un solo nodo al extremo principal de cualquier lista. Esta función se llama push() ya que estamos agregando el enlace a la cabecera, haciendo que una lista se parezca un poco a una stack.

Sabemos que C++ tiene su propio & argumento Función para implementar parámetros de referencia. Si añadimos un & al tipo de parámetro, el compilador automáticamente hará que el parámetro opere por referencia sin alterar el tipo del argumento.

Descargar  Ejecutar código

5. Haz que el puntero principal sea global

Podemos construir una lista enlazada haciendo que el puntero principal sea global, pero este enfoque no se recomienda ya que variables globales generalmente se consideran malas prácticas.

Descargar  Ejecutar código

6. Regresar la cabeza del push() función

Otro enfoque común que siguen muchos programadores es devolver el nodo principal del push() función y actualizar la cabeza en la persona que llama. Esto se demuestra a continuación:

Descargar  Ejecutar código

 
Sigue leyendo:

Lista enlazada – Inserción en la cola | Implementación de C, Java y Python

 
Ver también:

Implementación de listas enlazadas en C

Implementación de listas enlazadas en Java

Implementación de listas enlazadas en Python

 
Referencias: http://cslibrary.stanford.edu/103/LinkedListBasics.pdf