Reporte De Listas y Listas Doblemente Enlazadas

Páginas: 11 (2696 palabras) Publicado: 9 de octubre de 2011
REPORTE DE LISTAS SIMPLES Y DOBLES
DEFINICION DE LISTA
Una lista es una colección de elementos llamados generalmente nodos. El orden entre nodos se establece por medio de punteros, es decir, direcciones o referencias a otros nodos.
En general un nodo consta de dos parte una será donde se almacenara la información y la otra parte será la liga o el puntero que servirá de enlace para la otraliga
En el campo información llevara un dato del tipo, que se desee almacenar y en el campo de la liga o enlace será de tipo puntero, esto servirá para enlazar un nodo con otro.
OPERACIONES CONLISTAS
* Inserción de un elemento
* Borrado de un elemento
* Recorrido de la lista
* Búsqueda de un elemento
Estas son las operaciones que se pueden llevar a cabo en una lista.

INSERCIONDE UN ELEMENTO
Consiste en agregar un nuevo nodo a la lista, suponiendo que ya se tiene en la lista actual el nuevo nodo, hay tres casos de inserción; al inicio, al final o entre dos nodos.
INSERCIÓN AL INICIO DE LA LISTA
El nuevo nodo se coloca al principio de la lista de esa manera se convierte en el primero.
Algoritmo de como insertar un elemento al inicio de una lista
1.- Es necesarioutilizar una variable auxiliar, que se utiliza para crear el nuevo nodo mediante la reserva de memoria y asignación de la clave.
2.- Luego es necesario reorganizar los enlaces, es decir, el nuevo nodo debe apuntar al que era el primer elemento de la lista y a su vez debe pasar a ser el primer elemento.

Otra forma de explicar el algoritmo es el siguiente:
Insertar un nodo en al inicio de lalista.
P=apuntador al primer nodo de la lista
DATO =información que se almacenara en el nuevo nodo
Q= variable de tipo puntero
1.- Crear (Q)
2.- Hacer *Q.infformacionclave = elem;

/* 3.- Enseguida tenemos que enlazar los nodos con las ligas */
if (anterior == NULL || anterior == actual) { /* inserta al principio */
nuevo->sig = anterior;
*L = nuevo; /* Esto es muyimportante que cuando se inserta al principio de vemos de actualizar las cabeceras de cajón */

INSERCION AL FINAL DE LA LISTA
En este caso se insertara un nuevo nodo el cual se posicionara en el último de la lista.
Inserción al final de la lista
La inserción al final de la lista es menos eficiente debido a que, normalmente, no se tiene un puntero al
Último elemento de la lista y entonces se ha deseguir la traza desde la cabeza de la lista hasta el último
nodo de la lista y a continuación realizar la inserción. Cuando último es una variable puntero que
apunta al Último nodo de la lista, las sentencias siguientes insertan un nodo al final de la lista.

ultimo -> siguiente = (Nodo*)malloc(sizeof(Nodo));
ultimo -> siguiente -> dato = entrada;
ultimo -> siguiente -> siguiente = NULL;ultimo = ultimo -> siguiente;

INSERCION DE UN NODO ANTES/DESPUES DE OTRO
El nuevo nodo se coloca antes de otro nodo dado como referencia. El algoritmo de inserción antes de un nodo seria el siguiente:
INSERTAR ANTES(P, DATO, REFERENCIA)
Algoritmo que inserta un nodo antes de un nodo, dado como referencia REFERENCIA Y P Es un apuntador al primer nodo de la lista y DATO es la información que sealmacenará en el nuevo nodo
Q, X, T=Son variables de tipo puntero
BAND= variable de tipo booleano
1.- Hacer Qsiguiente
free(actua1);

RECORRIDO DE UNA LISTA
Recorrido simplemente despliega los datos almacenados en el arreglo Info, con ayuda de un segundo arreglo llamado Índice el cual guarda el orden en el que encuentran enlazados cada uno de los datos.
Apuntador toma el valor deInicio, después ve si la condición cumple para efectuar un Ciclo mientras Apuntador sea diferente de 0, si cumple lo que hace es que despliega la Info[Apuntador], después Apuntador toma el valor de Índice[Apuntador] (El cual nos indica el siguiente nodo que sigue en la lista) y hace esto hasta que Apuntador sea igual a 0 (Cuando llega a este punto a llegado al fin de la Lista Enlazada).
Algoritmo:...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Implementacion de listas doblemente enlazadas
  • Listas Circulares Doblemente Enlazadas
  • Listas doblemente enlazadas
  • Listas doblemente enlazadas
  • Listas doblemente enlazadas
  • Listas doblemente enlazadas
  • Listas doblemente enlazadas
  • Programa lista doblemente enlazada

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS