Вы находитесь на странице: 1из 8

UNIDAD 9: DATOS COMPLEJOS: PILAS, COLAS, LISTAS, GRAFOS Y RBOLES 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:

Ing. Nahiby Castillo

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

Ing. Nahiby Castillo

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:

Ing. Nahiby Castillo

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. Ing. Nahiby Castillo 4

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,v1}, {v1,v2},..., {vn,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

Ing. Nahiby Castillo

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 Nodo
A

Arista s

F G H I

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. Raz
A

F G H I

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.
A

F G H I

Ing. Nahiby Castillo

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.
A

F G H I

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 Padres
A

Hijos

Hijos

F G H I

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.


A

Subrbol
B C D

Hojas

F G H I

Ing. Nahiby Castillo

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

Ing. Nahiby Castillo