Please enable JavaScript.
Coggle requires JavaScript to display documents.
TAD LISTA DOBLE 0-F7Qnr7Zs-dobles-s- - Coggle Diagram
TAD LISTA DOBLE
Operación borrar
Donde los trazos continuos denotan la situación inicial y los punteados la final.
Para obviar los problemas derivados de los elementos extremos.
Un procedimiento para borrar un elemento en la posición p en una lista.
Operaciones con lista
La presencia de un puntero adicional en cada celda y consecuentemente procedimientos.
Si usamos punteros podemos declarar celdas que consisten en un elemento y dos punteros.
Operación siguiente
Mediante la operación siguiente podemos alcanzar de nuevo un nodo de la lista.
La estructura lógica es la de una lista y por lo tanto habrá una posición primero y una posición fin.
Operaciones primitivas de lista dobles
tPosicion primero (tLista l)
tPosicion fin (tLista l)
void destruir (tLista l)
void insertar (tElemento x, tPosicion p, tLista l)
tLista crear ()
void borrar (tPosicion *p, tLista l)
Implementación
La función primero(l) devolverá un puntero al nodo siguiente a la cabecera.
La función fin(l) devolverá un puntero al nodo cabecera.
La función de creación debe alojar memoria para la cabecera y hacer que los punteros siguiente y anterior.
Especificación semántica y sintáctica
tPosicion anterior (tPosicion p, tLista l)
Devuelve la posición que precede a p en l. :pen:
tPosicion posicion (tElemento x, tLista l)
Si x se encuentra entre los elementos de la lista l, devuelve la posición de su primera ocurrencia. En otro caso, devuelve la posición fin(l) :pen:
tPosicion siguiente (tPosicion p, tLista l)
Devuelve la posición siguiente a p en l. : :pen:
Introducción
Podemos darle a cada celda sobre una lista un puntero a las celdas siguiente y anterior en la lista.
Podemos usar un puntero a la celda del elemento así mejora usar el puntero a la celda anterior.