Vous êtes sur la page 1sur 8

Unidad 9: Datos Complejos: Pilas, Colas, Listas, Grafos y rboles

Ing. Nahiby Castillo


1
UNIDAD 9. DATOS COMPLEJOS
PILAS
Una pila es una lista de elementos en la que se pueden insertar y eliminar elementos slo por
uno de los extremos. Como consecuencia, los elementos de una pila sern eliminados en
orden inverso al que se insertaron. Es decir, el ltimo elemento que se meti a la pila ser el
primero en salir de ella.

En la vida cotidiana existen muchos ejemplos de pilas, una pila de platos en una alacena,
una pila de latas en un supermercado, una pila de papeles sobre un escritorio, etc.

Debido al orden en que se insertan y eliminan los elementos en una pila, tambin se le
conoce como estructura LIFO (Last In, First Out: ltimo en entrar, primero en salir).

Su utilizacin principal es para el software del sistema, compiladores e intrpretes.


Representacin en Memoria
Las pilas no son estructuras de datos fundamentales, es decir, no estn definidas como tales
en los lenguajes de programacin. Las pilas pueden representarse mediante el uso de:
Arreglos.
Listas enlazadas.
Nosotros ahora usaremos los arreglos. Por lo tanto debemos definir el tamao mximo de la
pila, adems de un apuntador al ltimo elemento insertado en la pila el cual denominaremos
SP. La representacin grfica de una pila es la siguiente:


Unidad 9: Datos Complejos: Pilas, Colas, Listas, Grafos y rboles
Ing. Nahiby Castillo
2
COLAS
Son listas lineales de informacin a las cuales de accede de un modo determinado siendo el
de tipo FIFO (First In, First Out) (Primero en Entrar, Primero en Salir), lo que quiere decir que
el primer dato en entrar es tambin el primer dato en salir, en las colas no se permite el
acceso aleatorio a ningn elemento concreto. Las recuperaciones de operaciones son
destructivas (elimina el elemento) de la cola, si no es almacenado en otro lugar se destruye.

Su utilizacin principal en las simulaciones, planificacin de sucesos, y los procesos de
entrada y salida con buffer.

Existen muchsimos ejemplos de colas en la vida real, como por ejemplo: personas
esperando en un telfono pblico, nios esperando para subir a un juego mecnico,
estudiantes esperando para subir a un camin escolar, etc.

2.2 Representacin en Memoria
Podemos representar a las colas de dos formas:
Como arreglos
Como listas ordenadas
En lo sucesivo, al apuntador del primer elemento lo llamaremos F, al ltimo elemento A y
MAXIMO para definir el nmero mximo de elementos en la cola.

2.3 Cola Lineal
La cola lineal es un tipo de almacenamiento creado por el usuario que trabaja bajo la tcnica
FIFO (primero en entrar primero en salir). Las colas lineales se representan grficamente de
la siguiente manera:

Las condiciones a considerar en el tratamiento de colas lineales son las siguientes:
Overflow (cola llena), cuando se realice una insercin.
Underflow(cola vaca), cuando se requiera de una extraccin en la cola.
Vaco

Unidad 9: Datos Complejos: Pilas, Colas, Listas, Grafos y rboles
Ing. Nahiby Castillo
3
LISTAS
Son colecciones de elementos, donde cada uno de ellos, adems de almacenar informacin,
almacena la direccin del siguiente elemento. Una lista es una estructura lineal de datos. Es
decir, cada uno de sus componentes y un predecesor nicos, con excepcin del ltimo y del
primero.

Las listas pueden implementarse mediante arreglos, resultando as una estructura esttica.
Tambin puede ser una memoria dinmica (La cantidad de memoria ocupada puede
modificarse durante la ejecucin del programa).

Una lista enlazada o encadenada es una coleccin de elementos nodos, en donde cada
uno contiene datos y un enlace o liga.

Un nodo es una secuencia de caracteres en memoria dividida en campos (de cualquier tipo).
Un nodo siempre contiene la direccin de memoria del siguiente nodo de informacin si este
existe.

Un apuntador es la direccin de memoria de un nodo
La figura siguiente muestra la estructura de un nodo:

El campo liga, que es de tipo puntero, es el que se usa para establecer la liga con el
siguiente nodo de la lista. Si el nodo fuera el ltimo, este campo recibe como valor NIL
(vaco).

A continuacin se muestra el esquema de una lista:





Unidad 9: Datos Complejos: Pilas, Colas, Listas, Grafos y rboles
Ing. Nahiby Castillo
4
GRAFOS
Un grafo es un conjunto de puntos (vrtices) en el espacio, que estn conectados por un
conjunto de lneas (aristas).

Los grafos son estructuras de datos dinmicas no lineales, utilizadas comnmente en el
anlisis de redes, en diseo de circuitos elctricos, en estrategias de mercados, cartografa,
mapas conceptuales, matemticas, planificacin de procesos y muchas rea del
conocimiento.

Conceptos Bsicos:
Aristas
Son las lneas con las que se unen las aristas de un grafo y con la que se construyen
tambin caminos.

Si la arista carece de direccin se denota indistintamente {a, b} o {b, a}, siendo a y b los
vrtices que une.
Si {a ,b} es una arista, a los vrtices a y b se les llama sus extremos.
Aristas Adyacentes: Se dice que dos aristas son adyacentes si convergen en el mismo
vrtice.
Aristas Paralelas: Se dice que dos aristas son paralelas si vrtice inicial y el final son el
mismo.
Aristas Cclicas: Arista que parte de un vrtice para entrar en el mismo.
Cruce: Son dos aristas que cruzan en un punto.

Vrtices
Son los puntos o nodos con los que esta conformado un grafo. Llamaremos grado de un
vrtice al nmero de aristas de las que es extremo. Se dice que un vrtice es `par' o `impar'
segn lo sea su grado.
Vrtices Adyacentes: si tenemos un par de vrtices de un grafo (U, V) y si tenemos un
arista que los une, entonces U y V son vrtices adyacentes y se dice que U es el vrtice
inicial y V el vrtice adyacente.
Vrtice Aislado: Es un vrtice de grado cero.
Unidad 9: Datos Complejos: Pilas, Colas, Listas, Grafos y rboles
Ing. Nahiby Castillo
5
Vrtice Terminal: Es un vrtice de grado 1.

Caminos
Sean x, y " V, se dice que hay un camino en G de x a y si existe una sucesin finita no vaca
de aristas {x,v
1
}, {v
1
,v
2
},..., {v
n
,y}. En este caso
x e y se llaman los extremos del camino
El nmero de aristas del camino se llama la longitud del camino.
Si los vrtices no se repiten el camino se dice propio o simple.
Si hay un camino no simple entre 2 vrtices, tambin habr un camino simple entre
ellos.
Cuando los dos extremos de un camino son iguales, el camino se llama circuito o
camino cerrado.
Llamaremos ciclo a un circuito simple
Un vrtice a se dice accesible desde el vrtice b si existe un camino entre ellos.
Todo vrtice es accesible respecto a si mismo







Unidad 9: Datos Complejos: Pilas, Colas, Listas, Grafos y rboles
Ing. Nahiby Castillo
6
RBOLES
Es una estructura de datos formada por nodos los cuales estn conectados por aristas. Un
rbol se define como un tipo de grafo que no contiene ciclos







Conceptos Bsicos:
rbol Vaco: Un rbol puede estar vaco; es decir no contener ningn nodo.
Raz: es el nodo que est al tope del rbol. Un rbol solo tiene una raz.








Camino: es la secuencia de nodos que hay que visitar para llegar de un nodo a otro de un
rbol.
Ejemplo: B-A-C-F es el camino entre B y F.









Arista
s Nodo
B
A
C D
E F
I H G
B
A
C D
E F
I H G
Raz
B
A
C D
E F
I H G
Unidad 9: Datos Complejos: Pilas, Colas, Listas, Grafos y rboles
Ing. Nahiby Castillo
7
Un conjunto de nodos y aristas se define como un rbol si y solo si existe un nico camino
desde la raz hasta cada uno de sus nodos.







Padre: En un rbol toda rama va de un nodo n1 a un nodo n2, se dice que n1 es padre de
n2.
Ejemplo: C es padre de E y de F, D es padre de G, de H y de I.
Hijo: todo nodo puede tener ms de una arista que lo lleva a otro nodo por debajo de l.
Estos nodos que se encuentran por debajo de un nodo dado se llaman hijos. Ejemplo: E es
hijo de C, B es hijo de A, H es hijo de D







Hojas: son aquellos nodos que no tienen hijos. En un rbol solo puede haber una raz pero
puede haber muchas hojas. Ejemplo: B,E,F,G,H,I son hojas.

Subrbol: Cualquier nodo se puede considerar como la raz de un subrbol.







B
A
C D
E F
I H G
B
A
C D
E F
I H G
Hijos
Padres
B
A
C D
E F
I H G
Hojas
Subrbol
Hijos
Unidad 9: Datos Complejos: Pilas, Colas, Listas, Grafos y rboles
Ing. Nahiby Castillo
8
GLOSARIO DE TRMINOS:
BUFFER
Es una memoria intermedia utilizada para guardar temporalmente la informacin que se
transfiere entre diferentes dispositivos informticos (o entre los componentes de un mismo
sistema informtico). Por ejemplo, la impresora.

COMPILADOR
Un compilador es un programa que permite traducir el cdigo fuente de un programa en
lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de mquina). De
esta manera un programador puede disear un programa en un lenguaje mucho ms
cercano a como piensa un ser humano, para luego compilarlo a un programa ms manejable
por una computadora. Ej.: Pascal, Fortran.

INTRPRETE
Programa que realiza un anlisis de una aplicacin escrita en un lenguaje no-mquina (fcil
de entender y trabajar con l) y lo convierte en lenguaje mquina entendible por el
ordenador. Ej.: PHP, Java, Python, Lenguaje C.

SOFTWARE DEL SISTEMA
Es un conjunto de programas que administran los recursos de la computadora. Ejemplos:
Unidad central de proceso, dispositivos de comunicaciones y dispositivos perifricos, el
software del sistema administra y controla al acceso del hardware. Ej.: Sistema Operativo
Windows, Linux