2. EstructuraLista Una lista enlazada es una de las estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de datos. Consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios y una o dos referencias (punteros) al nodo anterior o posterior.
3. Ejemplo de Tad que modelelistas Grafo inicGrafo() {Pre: TRUE} {Post: Inic_Grafo=(0,0)} */ { Grafo g=(Grafo)malloc(sizeof(TGrafo)); g->orden=0; g->grafo=NULL; return g;
4. Implementacion mediantevectores Las listas se pueden implementar usando las posiciones consecutivas de un vector. Como las listas tienen longitud variable y los vectores longitud fija, esto se resuelve considerando vectores de tamaño igual a la longitud máxima de la lista y un entero donde se indica la posición donde se encuentra el último elemento de la lista.
5. Listadoblementeenlazada Un tipo de lista enlazada más sofisticado es la lista doblemente enlazada o lista enlazadas de dos vías. Cada nodo tiene dos enlaces: uno apunta al nodo anterior, o apunta al valor NULL si es el primer nodo; y otro que apunta al nodo siguiente, o apunta al valor NULL si es el último nodo.
6. Implementacion en lenguajes de programacion Muchos lenguajes de programación tales como Lisp y Scheme tienen listas enlazadas simples ya construidas. En muchos lenguajes de programación, estas listas están construidas por nodos, cada uno llamado cons o celda cons. Las celdas cons tienen dos campos: el car, una referencia del dato al nodo, y el cdr, una referencia al siguiente nodo. Aunque las celdas cons pueden ser usadas para construir otras estructuras de datos, este es su principal objetivo.
7. EstructuraPila Una pila es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO , último en entrar, primero en salirque permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el área de informática debido a su simplicidad y ordenación implícita de la propia estructura
8. Ejemplo de TAD que modelePila Pila crearPila(); void apilar(Pila p, Elemento e); voiddesapilar(Pila p); Elemento recuperarTope(Pila p); intesVacia(Pila p); voiddestruirPila(Pila p)
9. Implementacion en lenguajes de programacion Un requisito típico de almacenamiento de una pila de n elementos es O(n). El requisito típico de tiempo de O(1) las operaciones también son fáciles de satisfacer con un array o con listas enlazadas simples. La biblioteca de plantillas de C++ estándar proporciona una "pila" clase templated que se limita a sólo apilar/desapilar operaciones. Java contiene una biblioteca de la clase Pila que es una especialización de Vector. Esto podría ser considerado como un defecto, porque el diseño heredado get () de Vector método LIFO ignora la limitación de la Pila.
10. Estructura Cola Una cola es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro. También se le llama estructura FIFO ,debido a que el primer elemento en entrar será también el primero en salir.
11. Ejemplo de Tad que modele Cola class cola { private: nodo *cabeza; inttamanio; public: cola(); booles_vacia(); voidincluir_nodo(nodo *); booleliminar_nodo(); intbuscar_nodo(nodo *); boolmodificar_nodo(nodo *,int); voidmostrar_cola(); nodo* crear_nodo(int); int elemento(); };
12. Colas en Vectores Circulares La idea de la cola circular propone tratar el arreglo de elementos como un círculo donde, el índice que sigue a MEMAVAIL (cantidad física de elementos del arreglo) es el 1 Esto permite utilizar todos los espacios que quedan libres en el arreglo luego de realizar eliminaciones de nodos