Implementar lista enlazada en PHP

Subodh Poudel 30 enero 2023
  1. Use la clase SplDoublyLinkedList para implementar la lista enlazada en PHP
  2. Utilice el método push() para insertar valores en la lista enlazada
  3. Use el método add() para insertar valores en la lista vinculada
  4. Use el método pop() para eliminar el elemento en la lista vinculada
  5. Encuentre el valor superior e inferior de una lista vinculada
Implementar lista enlazada en PHP

Este artículo presentará la implementación de una lista enlazada en PHP.

Use la clase SplDoublyLinkedList para implementar la lista enlazada en PHP

Una lista enlazada es una estructura de datos común implementada en muchos lenguajes de programación. Es lineal y contiene nodos vinculados entre sí.

Cada nodo contiene los datos y el enlace al nodo adyacente. Así, una lista enlazada forma una cadena de nodos. Hay diferentes variaciones de listas enlazadas.

  1. Lista de enlace único: es unidireccional. Atraviesa solo en la dirección de avance.
  2. Lista Doblemente Enlazada: Es bidireccional. Atraviesa tanto en las direcciones hacia adelante como hacia atrás.
  3. Lista Enlazada Circular: Es unidireccional y circular.
  4. Lista Circular Doblemente Enlazada: Es bidireccional y circular.

Podemos realizar una variedad de operaciones en la lista enlazada. Las operaciones básicas son:

  • el recorrido
  • inserción
  • eliminación
  • actualizar
  • buscando

PHP proporciona una clase SplDoublyLinkedList para implementar una lista enlazada. Es una lista doblemente enlazada.

Utilice el método push() para insertar valores en la lista enlazada

El método push() acepta un parámetro para ser empujado y permite agregar los valores en la lista. El elemento será empujado al final de la lista enlazada.

Por ejemplo, cree una instancia de la clase SplDoublyLinkedList y asígnela a una variable $list. Invoque el método push() e inserte los elementos.

Código de ejemplo:

$list = new SplDoublyLinkedList;

$list->push(10);
$list->push(20);
$list->push(30);
$list->push(40);
$list->push(40);

En el siguiente ejemplo, hemos añadido los elementos 10, 20, 30, 40 y 40 en una lista enlazada vacía. Tenga en cuenta que el elemento 40 se añade dos veces.

Podemos usar la siguiente función para mostrar los elementos de la lista.

function displayList($list){
  for ($list->rewind(); $list->valid(); $list->next()) {
    echo $list->current()."<br>";
  }
}

El método rewind() rebobina el iterador desde el inicio de la lista enlazada. Por ejemplo, el iterador se moverá al primer elemento de la lista.

El método valid() comprueba si la lista enlazada contiene más nodos, y el método next() pasa al siguiente elemento de la lista enlazada. Por lo tanto, podemos usar estos métodos como en el ejemplo anterior en el bucle for para iterar a través de los elementos de la lista enlazada.

Dentro del ciclo, el método current() denota el elemento actual. Entonces, se imprimirá el elemento actual.

Podemos llamar a esta función displayList() siempre que necesitemos imprimir los elementos de la lista. Usaremos esta función varias veces en el artículo.

El siguiente es el resultado cuando llamamos a la función displayList() con $list como argumento.

Producción :

10
20
30
40
40

Use el método add() para insertar valores en la lista vinculada

Podemos usar el método add() para insertar elementos en una lista enlazada especificando la posición. El método toma dos parámetros.

El primer parámetro es el índice donde se insertará el elemento, y el segundo parámetro es el elemento que se insertará. Por ejemplo, invoque el método add() con 4 y 50 como parámetros y llame al método displayList().

Código de ejemplo:

$list->add(4,50);
displayList($list);

El código anterior agrega el elemento 50 en el cuarto índice de la lista enlazada que creamos.

Producción :

10
20
30
40
50
40

Como resultado, el elemento 50 se ve en el cuarto índice. El elemento 40, anteriormente en el cuarto índice, se desplaza al final de la lista enlazada.

Use el método pop() para eliminar el elemento en la lista vinculada

Podemos usar el método pop() para eliminar el último elemento de una lista enlazada. El método no toma parámetros.

A partir del último resultado anterior, la lista contiene los siguientes elementos.

10
20
30
40
50
40

El método pop() eliminará el último elemento (40) de la lista enlazada.

Código de ejemplo:

$list->pop();
displayList($list);

Producción :

10
20
30
40
50

Encuentre el valor superior e inferior de una lista vinculada

Podemos encontrar el valor superior de la lista enlazada usando el método top(), y para el valor inferior, podemos usar el método bottom(). El siguiente ejemplo es también la continuación del ejemplo anterior.

La lista contiene los siguientes elementos.

10
20
30
40
50

Podemos invocar la función top() y bottom() con el objeto $list e imprimirlas usando la función echo.

Código de ejemplo:

displayList($list);
echo "the top value: ".$list->top()."<br>";
echo "the bottom value: ".$list->bottom()."<br>";

Como resultado, el elemento superior se muestra como 50 y el elemento inferior se muestra como 10.

Producción :

10
20
30
40
50
the top value: 50
the bottom value: 10
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn