PHP - eliminar los registro de una lista enlazada uno por uno

   
Vista:

eliminar los registro de una lista enlazada uno por uno

Publicado por cristian (8 intervenciones) el 20/05/2017 05:00:01
Estimados, alguna funcion que ejecute un ciclo para eliminar los registro de una lista enlazada uno por uno en php
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

eliminar los registro de una lista enlazada uno por uno

Publicado por xve (6699 intervenciones) el 21/05/2017 09:49:40
Hola Cristian, no se si te he entendido muy bien, pero te refieres a algo así:
1
2
3
4
5
6
7
8
9
10
<?php
$valores=array("a"=>95, "b"=>25);
 
foreach($valores as $key=>$value)
{
  unset($valores[$key]);
}
 
print_r($valores);
?>

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

eliminar los registro de una lista enlazada uno por uno

Publicado por Cristian (8 intervenciones) el 21/05/2017 22:58:59
si, eso es lo que necesito, funciona en lista enlazadas ?

este es el codigo.-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<?php
 
class Nodo
{
    //variable que contiene el elemento a almacenar dentro del nodo
    public $dato;
    //variable que contiene el puntero con la posicion del siguiente nodo
    public $proximo;
 
    //funcion void para crear el nodo
    public function __construct($elemento)
    {
        $this->dato = $elemento;
        $this->proximo = null;
    }
}
//Clase Lista Enlazada
class ListaEnlazada
{
    //variable o puntero que apunta al primer nodo de la lista
    public $primero = null;
    //variable que almacena la cantidad de elementos dentro de la lista
    private static $count = 0;
 
    //funcion que cuenta los nodos dentro de la lista
    public function ContarNodos()
    {
        return self::$count;
    }
 
    //funcion que inserta un nodo dentro de una lista vacia
	public function InsertarPrimerovacia($elemento) {
            $this->primero = new Nodo($elemento);
            $this->proximo = null;
			self::$count++;
    }
 
    //funcion que inserta un nodo en la primera posicion de una lista
    public function InsertarPrimero($elemento) {
        if ($this->primero == null) {
            $this->primero = new Nodo($elemento);
        } else {
            $aux = new Nodo($elemento);
 
            $aux->proximo = $this->primero;
 
            $this->primero = $aux;
        }
 
        self::$count++;
    }
 
    //funcion que inserta un nodo en la ultima posicion de la lista
    public function InsertarUltimo($elemento) {
        if ($this->primero == null) {
            $this->primero = new Nodo($elemento);
        } else {
            $actual = $this->primero;
            while ($actual->proximo != null)
            {
                $actual = $actual->proximo;
            }
            $actual->proximo = new Nodo($elemento);
        }
        self::$count++;
    }
 
    //funcion que inserta un nodo despues de una posicion dada
    public function InsertarDespues($elemento,$key){
        if($key == 0){
        $this->InsertarPrimero($elemento);
    }
    else{
        $aux = new Nodo($elemento);
        $actual = $this->primero;
        $anterior = $this->primero;
        for($i=0;$i<$key;$i++)
        {
                $anterior = $actual;
                $actual = $actual->proximo;
        }
           $anterior->proximo = $aux;
           $aux->proximo = $actual;
           self::$count++;
    }
    }
 
    //funcion que elimina el primer nodo de la lista
    public function EliminarPrimero() {
        if ($this->primero != null) {
            $actual = $this->primero;
            $this->primero = $actual->proximo;
        }
        self::$count--;
    }
 
 
    //funcion que elimina el nodo que ocupa la posicion que sigue a la posicion pasada por parametro
    public function EliminarDespues($key){
    if($key == 0){
            $this->EliminarPrimero($elemento);
        }
        else{
            $actual = $this->primero;
            $anterior = $this->primero;
            for($i=0;$i<$key;$i++)
            {
                    $anterior = $actual;
                    $actual = $actual->proximo;
            }
               $anterior->proximo = $actual->proximo;
               self::$count--;
        }
        }
 
    //funcion que elimina el nodo cuyo dato coincide con el valor del parametro
    public function EliminarNodo($key)
    {
        $actual = $anterior = $this->primero;
        while($actual->dato != $key) {
            $anterior = $actual;
            $actual = $actual->proximo;
        }
        if ($actual == $anterior) {
            $this->primero = $actual->proximo;
        }
        $anterior->proximo = $actual->proximo;
        self::$count--;
    }
 
 
    //funcion que recorre la lista desde el primer nodo hasta e ultimo e imprime el dato dentro del nodo
    public function ImprimirLista()
    {
        $elementos = [];
        $actual = $this->primero;
        while($actual != null) {
            array_push($elementos, $actual->dato);
            $actual = $actual->proximo;
        }
        $str = '';
        foreach($elementos as $elemento)
        {
            $str .= $elemento . '->';
        }
        echo $str;
    }
}
//Creamos la nueva
$lista=array();
$lista = new ListaEnlazada();
 
$lista->InsertarPrimerovacia(6);
$lista->InsertarDespues(32,1);
$lista->InsertarDespues(36,2);
$lista->InsertarDespues(86,3);
$lista->InsertarDespues(88,4);
$lista->InsertarDespues(158,5);
$lista->InsertarDespues(598,6);
$lista->InsertarDespues(796,7);
$lista->InsertarDespues(1,8);
$lista->InsertarDespues(13,9);
$lista->InsertarDespues(45,10);
$lista->InsertarDespues(59,11);
$lista->InsertarDespues(63,12);
$lista->InsertarDespues(95,13);
$lista->InsertarUltimo(701);
echo" Estos son los elementos ordenados desde los pares hasta los impares.<br>";
$lista->ImprimirLista();
echo "<br> Ahora eliminaremos el primer elemento.<br>";
$lista->EliminarPrimero();
$lista->ImprimirLista();
echo "<br> Ahora eliminaremos el ultimo.<br>";
$lista->EliminarNodo(701);
$lista->ImprimirLista();
echo "<br> Ahora eliminaremos el nodo que esta despues del nodo 5.<br>";
$lista->EliminarDespues(5);
$lista->ImprimirLista();
echo "<br>Insertar 10 elementos.<br>";
$lista->InsertarDespues(200,12);
$lista->InsertarDespues(201,13);
$lista->InsertarDespues(202,14);
$lista->InsertarDespues(203,15);
$lista->InsertarDespues(204,16);
$lista->InsertarDespues(205,17);
$lista->InsertarDespues(206,18);
$lista->InsertarDespues(207,19);
$lista->InsertarDespues(208,20);
$lista->InsertarUltimo(209);
$lista->ImprimirLista();
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad