unidad 9. datos complejos pilas

Anuncio
U nidad 9: D atos Com plejos: Pilas, Colas, Listas, G rafos y Á rboles
UNIDAD 9. DATOS COMPLEJOS
PILAS
Una pila es una lista de elementos en la que se pueden insertar y eliminar elementos sólo por
uno de los extremos. Como consecuencia, los elementos de una pila serán 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, también se le
conoce como estructura LIFO (Last In, First Out: último en entrar, primero en salir).
Su utilización principal es para el software del sistema, compiladores e intérpretes.
Representación en Memoria
Las pilas no son estructuras de datos fundamentales, es decir, no están definidas como tales
en los lenguajes de programación. Las pilas pueden representarse mediante el uso de:
•
Arreglos.
•
Listas enlazadas.
Nosotros ahora usaremos los arreglos. Por lo tanto debemos definir el tamaño máximo de la
pila, además de un apuntador al último elemento insertado en la pila el cual denominaremos
SP. La representación gráfica de una pila es la siguiente:
Ing. N ahiby Castillo
1
U nidad 9: D atos Com plejos: Pilas, Colas, Listas, G rafos y Á rboles
COLAS
Son listas lineales de información 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 también el primer dato en salir, en las colas no se permite el
acceso aleatorio a ningún elemento concreto. Las recuperaciones de operaciones son
destructivas (elimina el elemento) de la cola, si no es almacenado en otro lugar se destruye.
Su utilización principal en las simulaciones, planificación de sucesos, y los procesos de
entrada y salida con buffer.
Existen muchísimos ejemplos de colas en la vida real, como por ejemplo: personas
esperando en un teléfono público, niños esperando para subir a un juego mecánico,
estudiantes esperando para subir a un camión escolar, etc.
2.2 Representación 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 número máximo 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 técnica
FIFO (primero en entrar primero en salir). Las colas lineales se representan gráficamente de
la siguiente manera:
Las condiciones a considerar en el tratamiento de colas lineales son las siguientes:
•
Overflow (cola llena), cuando se realice una inserción.
•
Underflow(cola vacía), cuando se requiera de una extracción en la cola.
•
Vacío
Ing. N ahiby Castillo
2
U nidad 9: D atos Com plejos: Pilas, Colas, Listas, G rafos y Á rboles
LISTAS
Son colecciones de elementos, donde cada uno de ellos, además de almacenar información,
almacena la dirección del siguiente elemento. Una lista es una estructura lineal de datos. Es
decir, cada uno de sus componentes y un predecesor únicos, con excepción del último y del
primero.
Las listas pueden implementarse mediante arreglos, resultando así una estructura estática.
También puede ser una memoria dinámica (La cantidad de memoria ocupada puede
modificarse durante la ejecución del programa).
Una lista enlazada o encadenada es una colección 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 dirección de memoria del siguiente nodo de información si este
existe.
Un apuntador es la dirección 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
(vacío).
A continuación se muestra el esquema de una lista:
Ing. N ahiby Castillo
3
U nidad 9: D atos Com plejos: Pilas, Colas, Listas, G rafos y Á rboles
GRAFOS
Un grafo es un conjunto de puntos (vértices) en el espacio, que están conectados por un
conjunto de líneas (aristas).
Los grafos son estructuras de datos dinámicas no lineales, utilizadas comúnmente en el
análisis de redes, en diseño de circuitos eléctricos, en estrategias de mercados, cartografía,
mapas conceptuales, matemáticas, planificación de procesos y muchas área del
conocimiento.
Conceptos Básicos:
Aristas
Son las líneas con las que se unen las aristas de un grafo y con la que se construyen
también caminos.
Si la arista carece de dirección se denota indistintamente {a, b} o {b, a}, siendo a y b los
vértices que une.
Si {a ,b} es una arista, a los vértices a y b se les llama sus extremos.
Aristas Adyacentes: Se dice que dos aristas son adyacentes si convergen en el mismo
vértice.
Aristas Paralelas: Se dice que dos aristas son paralelas si vértice inicial y el final son el
mismo.
Aristas Cíclicas: Arista que parte de un vértice para entrar en el mismo.
Cruce: Son dos aristas que cruzan en un punto.
Vértices
Son los puntos o nodos con los que esta conformado un grafo. Llamaremos grado de un
vértice al número de aristas de las que es extremo. Se dice que un vértice es `par' o `impar'
según lo sea su grado.
Vértices Adyacentes: si tenemos un par de vértices de un grafo (U, V) y si tenemos un
arista que los une, entonces U y V son vértices adyacentes y se dice que U es el vértice
inicial y V el vértice adyacente.
Vértice Aislado: Es un vértice de grado cero.
Ing. N ahiby Castillo
4
U nidad 9: D atos Com plejos: Pilas, Colas, Listas, G rafos y Á rboles
Vértice Terminal: Es un vértice de grado 1.
Caminos
Sean x, y " V, se dice que hay un camino en G de x a y si existe una sucesión finita no vacía
de aristas {x,v1}, {v1,v2},..., {vn,y}. En este caso
x e y se llaman los extremos del camino
El número de aristas del camino se llama la longitud del camino.
Si los vértices no se repiten el camino se dice propio o simple.
Si hay un camino no simple entre 2 vértices, también 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 vértice a se dice accesible desde el vértice b si existe un camino entre ellos.
Todo vértice es accesible respecto a si mismo
Ing. N ahiby Castillo
5
U nidad 9: D atos Com plejos: Pilas, Colas, Listas, G rafos y Á rboles
ÁRBOLES
Es una estructura de datos formada por nodos los cuales están conectados por aristas. Un
árbol se define como un tipo de grafo que no contiene ciclos
Nodo
Arista
s
A
B
D
C
E
F
G
H
I
Conceptos Básicos:
Árbol Vacío: Un árbol puede estar vacío; es decir no contener ningún nodo.
Raíz: es el nodo que está al tope del árbol. Un árbol solo tiene una raíz.
Raíz
A
B
D
C
E
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
B
D
C
E
F
G
Ing. N ahiby Castillo
H
I
6
U nidad 9: D atos Com plejos: Pilas, Colas, Listas, G rafos y Á rboles
Un conjunto de nodos y aristas se define como un árbol si y solo si existe un único camino
desde la raíz hasta cada uno de sus nodos.
A
B
D
C
E
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 más 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
B
Hijos
Hijos
D
C
E
F
G
H
I
Hojas: son aquellos nodos que no tienen hijos. En un árbol solo puede haber una raíz pero
puede haber muchas hojas. Ejemplo: B,E,F,G,H,I son hojas.
Subárbol: Cualquier nodo se puede considerar como la raíz de un subárbol.
A
Subárbol
B
Hojas
D
C
E
F
G
Ing. N ahiby Castillo
H
I
7
U nidad 9: D atos Com plejos: Pilas, Colas, Listas, G rafos y Á rboles
GLOSARIO DE TÉRMINOS:
BUFFER
Es una memoria intermedia utilizada para guardar temporalmente la información que se
transfiere entre diferentes dispositivos informáticos (o entre los componentes de un mismo
sistema informático). Por ejemplo, la impresora.
COMPILADOR
Un compilador es un programa que permite traducir el código fuente de un programa en
lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De
esta manera un programador puede diseñar un programa en un lenguaje mucho más
cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable
por una computadora. Ej.: Pascal, Fortran.
INTÉRPRETE
Programa que realiza un análisis de una aplicación escrita en un lenguaje no-máquina (fácil
de entender y trabajar con él) y lo convierte en lenguaje máquina 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 periféricos, el
software del sistema administra y controla al acceso del hardware. Ej.: Sistema Operativo
Windows, Linux
Ing. N ahiby Castillo
8
Descargar