Listas doblemente enlazadas pascal
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 5,15 KB
Estructura dinámica (punteros)
Es una variable que contiene la dirección de otras variables, ésta contiene valores que son direcciones de memoria
donde se almacenan datos. La declaración de una variable puntero debe
indicar el tipo de dato al que apunta; para ello se hace preceder a su nombre con un asteristo (*):
<tipo de dato apuntado> *<identificador de puntero>
Inicialización de punteros
C no inicializa los puntero cuando se declaran y es preciso inicializarlos antes de su uso, después de la inicialización se puede utilizar el puntero para referenciar los datos direccionados. Para asignar una dirección de memoria a un puntero se utiliza el operador&.
Este método de inicialización , denominadoestático, requiere: Asignar memoria estática definiendo una variable y a continuación hacer que el puntero apunte al valor de la variable.
Int i; define una variable i
Int *p; define un puntero a un entero
P=&i; asigna la dirección de i a p
El operador & devuelve la dirección de la variable a la cual se aplica. El uso de un puntero para obtener el valor al que apunta, es decir, su dato apuntado se denomina indireccionar el puntero
(desreferenciar el puntero); para ello, se utiliza el operador de indirección *ntero (desreferenciar el puntero); para ello, se utiliza el operador de indirección *
& Obtiene la dirección de una variable.
* Define una variable como puntero.
* Obtiene el contenido de una variable puntero.
Estructura dinámica (nodo)
Una estructura básica de un nodo para crear listas dedatos sería:
Struct nodo{
int nodo;
struct nodo *otronodo; };
El campo “otronodo puede apuntar a un objeto del tipo nodo. De este modo, cada nodo puede usarse como un ladrillo para construir listas de datos y cada uno mantendrá cierta relación con otro nodo.
Nodo
Para acceder a un nodo de la estructura sólo necesitaremos un puntero al nodo.Listas enlazadas:
Cada elemento sólo dispone de un puntero, que apuntará al siguiente elemento de la lista o valdrá NULL si es el último elemento.
Pilas:
son un tipo especial de lista, conocidas como listas LIFO (Last In, First Out), el último en entrar es el primero en salir . es una colección ordenada de elementos en la que puede insertarse y suprimirse por un extremo, llamado tope, nuevos elementos.
Cola:
otro tipo de listas, conocidas como FIFO (First In, First Out), el primero en entrar es el primero en salir.
a) Creación de una Cola vacía.
b) Verificación de que una cola está vacía.
c) Añadir un dato al final de una cola.
d) Eliminación de un dato de la cabeza de la Cola.
Listas circulares:
o listas cerradas, son parecidas a las listas abiertas, pero el último elemento apunta al primero.
Listas doblemente enlazadas:
cada elemento dispone de dos punteros, uno apunta al siguiente elemento y el otro apunta al anterior. Al contrario de las listas abiertas , estás listas pueden recorrerse en los dos sentidos.
es una colección de nodos dispuestos uno detrás de otro, en la que
cada elemento se conecta al siguiente por un enlace o puntero. Los nodos se componen de dos campo, un campo que contiene la información y
un campo de tipo puntero que apunta al siguiente nodo de la lista.
existe un nodo especial, elprimero llamaremos a ese nodo la cabeza de la lista. Ello, porque mediante ese único puntero podemos acceder a
la lista.Null=lista vacía.
Operaciones básicas con lista
La operaciones que se pueden realizar con lista:
• Añadir o insertar elementos.
• Buscar o localizar elementos
• Borrar elementos
• Moverse a través de una lista, anterior,
siguiente, primero.
Las lista abiertas (enlazadas) sólo pueden recorrerse en un sentido, ya que cada nodo apunta al siguiente, pero no se puede obtener, por ejemplo, un puntero al nodo anterior desde un nodo cualquiera, si no se
empieza desde el principio
Los métodos de búsqueda se clasifican en:
- Búsqueda interna. se encuentran almacenados en la memoria principal del computador.- Secuencial o lineal. Binaria. Hash (transformación de claves) Una función hash que sea fácil de calcular y que distribuya uniformemente las direcciones. b. Un método para resolver colisiones,
generando posiciones alternativas
Búsqueda externa.