Estructura

Páginas: 9 (2182 palabras) Publicado: 31 de marzo de 2011
Listas Enlazadas
Listas Enlazadas
Una lista enlazada es una estructura que esta constituida por una serie de elementos llamados nodos y contienen dos campos, uno de información y el otro es de la dirección del elemento siguiente.
El campo de información contiene el elemento actual en la lista. El campo de dirección siguiente contiene la dirección del nodo siguiente en la lista. Estadirección la cual es utilizada para dar acceso a un nodo en particular denominado puntero
Lista lineal enlazada
Tiene que comenzar con un valor inicial que apunte al primer nodo de información y este a su vez tiene la dirección del siguiente nodo de información. Cuando la lista llega a su fin, en vez de tener la dirección del siguiente nodo se tiene un NULL, que en C++ lo podemos sustituir por un valornumérico negativo que será el −999.
En este tipo de estructura llamada Lista Enlazada se pueden realizar 4 distintas operaciones básicas que son las siguientes:
Recorrido
Búsqueda
Inserción
Eliminación

Programación en el entorno GNOME
Estructuras de datos: listas enlazadas, pilas y colas.
Listas enlazadas.
Introducción
La lista enlazada es un TDA que nos permite almacenar datosde una forma organizada, al igual que los vectores pero, a diferencia de estos, esta estructura es dinámica, por lo que no tenemos que saber "a priori" los elementos que puede contener.
En una lista enlazada, cada elemento apunta al siguiente excepto el último que no tiene sucesor y el valor del enlace es null. Por ello los elementos son registros que contienen el dato a almacenar y un enlace alsiguiente elemento. Los elementos de una lista, suelen recibir también el nombre de nodos de la lista.
-------------------------------------------------
struct lista {
-------------------------------------------------
gint dato;
-------------------------------------------------
lista *siguiente;-------------------------------------------------
};
-------------------------------------------------

| Representa el dato a almacenar. Puede ser de cualquier tipo; en este ejemplo se trata de una lista de enteros. |
| Es un puntero al siguiente elemento de la lista; con este puntero enlazamos con el sucesor, de forma que podamos construir la lista. |
Figura 1. Esquema de unnodo y una lista enlazada.

Para que esta estructura sea un TDA lista enlazada, debe tener unos operadores asociados que permitan la manipulación de los datos que contiene. Los operadores básicos de una lista enlazada son:
* Insertar: inserta un nodo con dato x en la lista, pudiendo realizarse esta inserción al principio o final de la lista o bien en orden.
* Eliminar: elimina un nodode la lista, puede ser según la posición o por el dato.
* Buscar: busca un elemento en la lista.
* Localizar: obtiene la posición del nodo en la lista.
* Vaciar: borra todos los elementos de la lista
Después de esta breve introducción, que sólo pretende servir como recordatorio, pasaremos a ver cómo es la estructura GSList que, junto con el conjunto de funciones que la acompañan,forman el TDA lista enlazada en GLib™.
GSList
La definición de la estructura GSList o, lo que es lo mismo, un nodo de la lista, está definido de la siguiente manera:
-------------------------------------------------
struct GSList {
-------------------------------------------------
gpointer data;
-------------------------------------------------GSList *next;
-------------------------------------------------
};
-------------------------------------------------

| Representa el dato a almacenar. Se utiliza un puntero genérico por lo que puede almacenar un puntero a cualquier tipo de dato o bien almacenar un entero utilizando las macros de conversión de tipos. |...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Estructura
  • Estructura
  • Estructura
  • Estructuras
  • Estructuras
  • Estructuras
  • Estructuras
  • Estructuras

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS