You are on page 1of 20

ESTRUCTURAS DE

DATOS
IPC 1

ESTRUCTURAS
DINMICAS

Definicion
Son las estructuras que su tamao y forma es variable(o
puede serlo) a lo largo de un programa, por lo que se
crean y destruyen en tiempo de ejecucin. Esto permite
dimensionar la estructura de una forma precisa.
Es decir seba asignando memoria en tipo de ejecucin
segn se va necesitando.

Tipos de Estructuras dinmicas


Estas se pueden clasificar en 2 tipos:

Conceptos claves
Apuntadores/puntero :Las variables de tipo puntero son las
que nos permiten referenciar datos dinmicos.
Un apuntador es una variable que contiene la direccin en
memoria de otra variable.
En Java los apuntadores se manejan como referencias.

Conceptos claves
Clase autoreferenciada: Una clase con al menos un campo cuyo

referencia es el nombre de la clase:


Nodo: un objeto creado desde una clase autoreferenciada.
Campo de enlace: un campo cuyo tipo de referencia es el nombre
de la clase.
Enlace: la referencia a un campo de enlace.

TIPOS LINEALES

Pila (Stack)
Una pila es un conjunto ordenado de elementos. Estos
elementos solamente se pueden acceder por un lugar
nico o extremo de la pila.
Las pilas utilizan la poltica de acceso tipo LIFO. (Last In
First Out).

Operaciones en una pila


Poner (Push) : esta operacin permite aadir un

elemento a la pila.
Sacar(Pop) : esta operacin permite sacar un elemento
de la pila.
Cima(Top o peek): esta operacin permite obtener el
elemento en la cima de la pila.

Cola (Queue)
Una cola es una estructura de datos que permite el
almacenamiento de elementos en una lista y que permite
acceder a los mismos por ambos extremos de la lista.
Las colas utilizan la poltica de acceso tipo FIFO. (First In
First Out).

Operaciones de una cola


Encolar/Insertar: esta operacin permite ingresar un

elemento en el extremo final de la cola.


Desencolar/Extraer: esta operacin permite sacar un
elemento en el extremo frontal de la cola.
Frente/ver primero: esta operacin permite consultar el
elemento en el frente de la cola.

Lista
Una lista en su sentido amplio, es un conjunto de

elementos del mismo tipo donde cada elemento tiene un


nico predecesor (excepto el primero) y un nico sucesor
(excepto el ltimo) y cuyo nmero de elementos es
variable.
Tipos de Lista:
1.
2.
3.

4.
5.

Listas simples enlazadas


Listas doblemente enlazadas
Listas circulares simples enlazadas
Listas circulares doblemente enlazadas
Listas ortogonalmente enlazadas(Matriz ortogonal)

Operaciones en Listas
Insertar: inserta un elemento final de la lista

Insertar en posicin: inserta un elemento en una

posicin especificada, si existe.


Buscar: busca un elemento dentro de la lista.
Obtener: obtiene un elemento en la posicin
especificada, si existe
Borrar/eliminar: borra un elemento dentro de la lista.

Listas simples enlazadas


Es una lista enlazada de nodos, donde cada nodo tiene

un nico campo de enlace. Una variable referencia


contiene una referencia al primer nodo, cada nodo
(excepto el ltimo) enlaza con el nodo siguiente, y el
enlace del ltimo nodo contiene null para indicar el final
de la lista.

Listas doblemente enlazadas


Una lista doblemente enlazada es una lista lineal en la

que cada nodo tiene dos enlaces, uno al nodo siguiente,


y otro al anterior.
Las listas doblemente enlazadas no necesitan un nodo
especial para acceder a ellas, pueden recorrerse en
ambos sentidos a partir de cualquier nodo, esto es
porque a partir de cualquier nodo, siempre es posible
alcanzar cualquier nodo de la lista, hasta que se llega a
uno de los extremos.

Listas circulares
La lista circular es una especie de lista enlazada simple o

doblemente enlazada, pero que posee una caracterstica


adicional para el desplazamiento dentro de la lista, sta no
tiene fin
Para que la lista sea sin fin, el puntero siguiente del ltimo

elemento apuntar hacia el 1er elemento de la lista en lugar


de apuntar al valor NULL, como hemos visto en el caso de
listas enlazadas simples o doblemente enlazadas
En las listas circulares, nunca se llega a una posicin en la que

ya no sea posible desplazarse.


Cuando se llegue al ltimo elemento, el desplazamiento
volver a comenzar desde el primer elemento.

Ejemplo
Lista circular simple enlazada

Lista circular simple enlazada

Matriz Ortogonal
una matriz ortogonal es una estructura de datos utilizada

para implementa una tabla con memoria dinmica. Y la


cual puede buscar o recorrer por uno de los dos aspectos
de orden(Filas/Columnas).
una matriz ortogonal tiene cuatro apuntadores "arriba"

"abajo" "Derecha" "Izquierda".

Ejemplo
Grficamente una matriz ortogonal se mirara de la

siguiente forma:

Listas
Una lista es una ordenada coleccin (a veces llamada una

secuencia). Las listas pueden contener elementos duplicados.


List<E>: Elementos en una secuencia particular que mantienen un

orden y permite duplicados. La lista puede ser recorrida en ambas


direcciones con un ListIterator. Hay 3 tipos de constructores:
1.

2.
3.

ArrayList<E>: Su ventaja es que el acceso a un elemento en particular es


nfimo. Su desventaja es que para eliminar un elemento, se ha de mover
toda la lista para eliminar ese hueco.
Vector<E>: Es igual que ArrayList, pero sincronizado. Es decir, que si
usamos varios hilos, no tendremos de qu preocuparnos hasta cierto punto.
LinkedList<E>: En esta, los elementos estn conectados con el anterior y
el posterior. La ventaja es que es fcil mover/eliminar elementos de la lista,
simplemente moviendo/eliminando sus referencias hacia otros elementos.
La desventaja es que para usar el elemento N de la lista, debemos realizar
N movimientos a travs de la lista.

You might also like