Está en la página 1de 29

LISTAS

PROGRAMACIÓN I – ING. AGUSTINA GANTUZ


2
Repaso – Puntero o Apuntador

¿Qué es?
Un puntero es una variable que
hace referencia a una dirección
de memoria
3
Memoria

 La memoria es un conjunto de celdas contiguas donde se almacenan datos.

1 2 3 4 5 6 7 8 9 A B C E F
 La unidad de memoria más pequeña es el bit.
1 0 0 1 1 0 1 0
 El byte es un conjunto de 8 bits. Unidad de memoria.
 El lugar (ubicación) de cada byte es único y es su dirección.
 Si los bytes son consecutivos la dirección se ira incrementando secuencialmente.
 Cada celda tiene dos valores asociados:
 Dirección
 Contenido.
4
Puntero o Apuntador

 Un puntero es un objeto que APUNTA a otro objeto. Es decir, una


variable cuyo valor es la dirección de memoria de otra variable.

... ... 25 ... ... ... ...


Dirección 1502 1504 1506 1508
 No hay que confundir una dirección de memoria con el contenido de esa
dirección de memoria.
EJ: int x = 25;
 La dirección de la variable x (&x) es 1502
 El contenido de la variable x es 25
5
Memoria
6
Puntero o Apuntador

 Es una forma de asignar valores a una variable indirectamente


 ¿Dónde se usan?
 Se puede usar la dirección de memoria con más rapidez
 Asignación dinámica de memoria
 Transferencia de grandes estructuras de datos
 Interactuar con el hardware
7
Tipos de Operadores

 Al trabajar con punteros se emplean dos operadores específicos:

 Operador de dirección: & Representa la dirección de memoria de la variable.

 Operador de contenido o indirección: * Representa el valor de la variable


8
Listas

Una lista es una estructura de datos


en la cual los elementos En las listas se pueden ver todos los
almacenados en la misma pueden elementos de la estructura,
ser agregados, borrados y accedidos permitiendo realizar recorridos y
sin restricciones, en cualquier punto consultas de los datos.
de la estructura.
9
Listas

 En la estructura de una lista se distinguen dos elementos:


 El principio, a partir del cual se inician las búsquedas y
recorridos.
 El corriente, elemento de referencia en la lista, a partir del cual
se realizan borrados, inserciones y modificaciones.
10
Listas Enlazadas

 Asignación dinámica de memorias a listas


 La memoria se va tomando según se necesita
 Similares a los Arrays, pero el acceso no es por índice, sino por puntero.
 En los Arrays los elementos están contiguos, en las enlazada dispersos en la memoria.
 Al agregar un nuevo elemento, reservamos memoria y lo añadimos a la lista (nodo)
 El ultimo elemento es el que apunta a NULL
11
Listas Enlazadas

 Operaciones básicas
 Visualizar
 Insertar
 Eliminar
 Buscar según una posición
 Al quitar un elemento, simplemente se elimina y se libera la memoria.
 Simples
 Dobles
 Circulares
12
Listas Enlazadas

 Eliminar un elemento
 Uso de punteros temporales para almacenar la dirección de los elementos a borrar
 Eliminar al principio
 Eliminar en otro lugar
 Recorrer lista
 Hasta que el puntero a Siguiente sea NULL
 Hasta que el puntero a Anterior sea NULL
 Agregar un elemento
 Al principio
 Al final
 En una posición determinada
13
Listas Simplemente Enlazadas
14
Listas Simplemente Enlazadas
15
Listas Simplemente Enlazadas
16
Listas Simplemente Enlazadas
17
Listas Simplemente Enlazadas
18
Listas Doblemente Enlazadas

 Similar a las enlazadas simples pero con puntero al elemento anterior.


 Se pueden usar cuando se necesitan varias operaciones de inserción y
eliminación.
 El puntero anterior del primer elemento debe apuntar hacia NULL (el
inicio de la lista).
 El puntero siguiente del último elemento debe apuntar hacia NULL (el fin
de la lista).
19
Listas Doblemente Enlazadas
20
Listas Doblemente Enlazadas
21
Listas Doblemente Enlazadas
22
Listas Doblemente Enlazadas
23
Listas Doblemente Enlazadas
24
Listas Doblemente Enlazadas
25
Listas Doblemente Enlazadas
26
Listas Doblemente Enlazadas
27
Listas Circulares

 Una lista simple o doblemente enlazada, pero el ultimo elemento es un puntero al


primero
 Los punteros Inicio y Fin apuntan al mismo elemento
28
Listas Circulares
29
Listas Circulares

También podría gustarte