Estructuras Lineales Estticas y Dinmicas 1 Pilas 2
- Slides: 39
Estructuras Lineales, Estáticas y Dinámicas 1. Pilas 2. Colas 3. Listas enlazadas 1. Simples 2. Dobles Estructura de Datos I Curso de Verano
Estructuras de Datos Almacenamiento Contiguo Lineales Estructuras de Datos Almacenamiento No Contiguo No lineales Estructura de Datos I Curso de Verano
Operaciones Básicas en Estructuras Lineales 1. Recorrido: Procesa c/elemento de la estructura. 2. Búsqueda: Recupera la posición de un elemento específico. 3. Inserción: Adiciona un nuevo elemento a la estructura. 4. Borrado: Elimina un elemento de la estructura. 5. Ordenación: Ordena los elementos de la estructura de acuerdo a los valores que contiene. 6. Mezcla: Combina 2 estructuras en una sola. Estructura de Datos I Curso de Verano
PILAS Definición: Estructura de datos lineal donde los elementos pueden ser añadidos o removidos solo por un extremo. Trabajan con filosofía LIFO (Last In- First Out ). Ejemplos: • Pila de platos • Pila de discos • Pila de llamadas a funciones • Pila de recursion • Pila de resultados parciales de formulas aritméticas, etc. Estructura de Datos I Curso de Verano
OPERACIONES BASICAS CON PILAS -PUSH (insertar). - Agrega un elementos a la pila en el extremo llamado tope. -POP (remover). - Remueve el elemento de la pila que se encuentra en el extremo llamado tope. -VACIA. - Indica si la pila contiene o no contiene elementos. -LLENA. - Indica si es posible o no agregar nuevos elementos a la pila. Estructura de Datos I Curso de Verano
REPRESENTACIÓN DE PILAS: • Usando arreglos: Define un arreglo de una dimensión (vector) donde se almacenan los elementos. 0 1 2 3 4 5 TOPE: Apunta hacia el elemento que se encuentra en el extremo de la pila. (inicialmente es -1). Estructura de Datos I Curso de Verano
Ejemplo Inicio: Insertar Eliminar A: B: C: elemento C A Tope -1 Tope B B B A A A Tope Estructura de Datos I Curso de Verano
Aplicaciones de Pilas EXPRESIONES ARITMETICAS: Una expresión aritmética contiene constantes, variables y operaciones con distintos niveles de precedencia. OPERACIONES : ^ potencia */ multiplicación, división +, - suma, resta Estructura de Datos I Curso de Verano
NOTACIONES: NOTACION INFIJA: Los operadores aparecen en medio de los operandos. A + B, A – 1, E/F, A * C , A ^ B , A + B + C, A+B-C NOTACION PREFIJA: El operador aparece antes de los operandos. + AB, - A 1, /EF, *AC, ^AB, +AB+C, +AB-C NOTACION POSTFIJA: El operador aparece al final de los operandos. AB+, A 1 -, EF/, AC*, AB^, AB+C+, AB+CEstructura de Datos I Curso de Verano
Aplicaciones de Pilas Funciones Recursivas • Las pilas pueden ser usadas para implementar la recursión en programas. • Una función o procedimiento recursivo es aquel que se llama a si mismo. • Ejemplos: – – – Factorial Números de Fibonacci Torres de Hanoi Algoritmos de Ordenamiento de datos Etc. Estructura de Datos I Curso de Verano
Aplicaciones de Pilas Recursion // Funcion factorial public static int factorial(int n) { if (n<=1) return 1; else return n*factorial(n-1); } // Funcion fibonacci public static int fib(int n) { if (n==1) return 0; else if (n==2) return 1; else return fib(n-1)+fib(n-2); } Estructura de Datos I Curso de Verano
Aplicaciones de Pilas Control de secuencia de programas. • Las pilas son requeridas para implementar el control de flujo de ejecución de un programa con subprogramas (funciones, procedimientos o métodos). – Subprogramas recursivos o no recursivos – Existen llamadas a ejecución de subprogramas. – Un subprograma se ejecuta completamente antes de retornar al punto donde fue llamado. Estructura de Datos I Curso de Verano
COLAS Definicion. Es una lista lineal de elementos en la que las operaciones de insertar y eliminar se realizan en diferentes extremos de la cola. Trabajan con filosofía FIFO ( First In - First out), el primer elemento en entrar es el primer elemento en salir. Ejemplos: • Cola de automóviles esperando servicio en una gasolinera • Cola de clientes en una ventanilla del banco para pagar un servicio • Cola de programas en espera de ser ejecutados por una computadora. Estructura de Datos I Curso de Verano
TIPOS DE COLAS: • Cola simple: Estructura lineal donde los elementos salen en el mismo orden en que llegan. • Cola circular: Representación lógica de una cola simple en un arreglo. • Cola de Prioridades: Estructura lineal en la cual los elementos se insertan en cualquier posición de la cola y se remueven solamente por el frente. • Cola Doble (Bicola): Estructura lineal en la que los elementos se pueden añadir o quitar por cualquier extremo de la cola (cola bidireccional). Estructura de Datos I Curso de Verano
Operaciones básicas en Colas Simples Insertar. - Almacena al final de la cola el elemento que se recibe como paramétro. Eliminar. - Saca de la cola el elemento que se encuentra al frente. Vacía. - Regresa un valor booleano indicando si la cola tiene o no elementos (true – si la cola esta vacia, false – si la cola tiene al menos un elemento). Llena. - Regresa un valor booleano indicando si la cola tiene espacio disponible para insertar nuevos elementos ( true – si esta llena y false si existen espacios disponibles). Estructura de Datos I Curso de Verano
Operaciones: Estado de la cola: Inicio: Cola Vacía 1. - Insertar A A 2. - Insertar B A B 3. - Insertar C A B B C C D 4. - Remover Elemento 5. - Insertar D 6. - Remover Elemento C D Estructura de Datos I Curso de Verano
Implementación de Colas • Arreglo – con frente fijo. – con frente movible. – circular. • Listas ligadas Estructura de Datos I Curso de Verano
Representación usando arreglos Las colas pueden ser representadas en arreglos de una dimensión (vector) manteniendo dos variables que indiquen el FRENTE y FINAL de los elementos de la cola. 0 1 2 3 4 A F S D Z Frente 5 Final Estructura de Datos I Curso de Verano
• Cuando la cola esta vacía las variables frente y final son nulos y no es posible remover elementos. • Cuando la cola esta llena ( frente = 0 y final = n-1) no es posible insertar elementos nuevos a la cola. • Cuando se remueven elementos el frente puede incrementarse para apuntar al siguiente elemento de la cola (implementacion con frente movil) o los elementos en la cola pueden desplazarse una posicion adelante (implementación con frente fijo) • Recuperación de espacio: Cuando no hay espacios libres al final del arreglo los elementos pueden ser desplazados para desocupar posiciones en un extremo del arreglo o se puede manejar una estructura circular. Estructura de Datos I Curso de Verano
Ejemplo: Suponer que usamos un arreglo de 5 posiciones. Usando la representación de frente fijo y frente movible. Frente A B C Final Frente Al remover un elemento: Final Frente B C Frente fijo B Final C Frente movible Estructura de Datos I Curso de Verano
Frente Final B C Frente B Final C Insertar elemento D: Frente Final B C D Frente B Final C D Estructura de Datos I Curso de Verano
Frente Insertar elemento E: Final Frente B C D E Frente B C D Final B C D E Insertar elemento F: Final Frente Final E F Insertar elemento G: B C D E F Error: Cola llena!!!! Estructura de Datos I Curso de Verano
Frente Cola Circular Cola inicial Final B C D Frente Final Es una representación lógica de la cola en un arreglo. El frente y final son movibles. Cuando el frente o final llegan al extremo se regresan a la primera posición del arreglo. Remover C D Frente Final Insertar E C D Final E Frente Insertar F F C D E Estructura de Datos I Curso de Verano
Representación de colas: • Usando memoria estática: arreglos con tamaño fijo y frente fijo o movible o represntación circular. Final Frente B C D E F 0 3 4 1 2 • Usando memoria dinámica: Listas ligadas. Final B Frente C D E F Estructura de Datos I Curso de Verano
LISTAS ENLAZADAS 1. Simples (con enlace simple) 2. Dobles (doblemente enlazadas) • • Existe diversas implementaciones de estas estructuras. Las variaciones mas comunes implementan listas circulares y listas con cabecera en sus dos variaciones (simples y dobles) Estructura de Datos I Curso de Verano
En lenguajes donde no se cuenta con memoria dinámica, las listas se implementan usando arreglos. información 0 enlace Pan -1 Galletas 4 Jamón 7 Leche 0 1 inicio 2 • El arreglo contiene dos campos: uno para la información y otro para relacionar al siguiente elemento. 3 4 5 6 7 • La lista se recorre desde el inicio y hasta encontrar un elemento que contenga un enlace vacío. Estructura de Datos I Curso de Verano
LISTAS Una lista es una colección lineal de elementos llamados nodos donde el orden de los mismos se establece mediante punteros o referencias y existe un puntero/referencia especial llamado inicio para localizar al primer elemento. Ejemplos: inicio *Lista enlazada de 0 elementos Información enlace inicio * Lista enlazada de 4 elementos Estructura de Datos I Curso de Verano
Los nodos de las listas Un nodo se divide en 2 partes: • Información: Contiene la información del elemento. • Enlace: Contiene la dirección del siguiente nodo de la lista. información enlace Nodo public class Nodo{ // atributos public String informacion; public Nodo enlace; // el constructor de nodos Nodo (String n){ informacion = n; enlace = null; } } Estructura de Datos I Curso de Verano
Almacenamiento de datos: 1. Arreglos: La relación lineal esta implícita en la relación física de los elementos. Desventaja: Almacenamiento estático y tamaño fijo. 2. Elementos enlazados: Agrega a cada elemento un campo de enlace, no requieren almacenamiento contiguo en memoria, se pueden añadir y borrar elementos fácilmente. Estructura de Datos I Curso de Verano
Listas Simples • Colección lineal de elementos llamados nodos. • Existe un elemento llamado inicio que apunta al primer elemento de la lista. • Cada nodo contiene un campo de enlace que apunta al siguiente elemento. • El último elemento de la lista en su campo enlace apunta a nulo. • Al principio el apuntador inicio apunta a nulo. Estructura de Datos I Curso de Verano
Operaciones con listas simples • • • Insertar: Agrega un elemento a la lista. Eliminar: Retira un elemento de la lista. Buscar: Busca un elemento en la lista. Recorrer: Visita todos los elementos de la lista. Vacía: Indica si la lista contiene o no elementos. Tamaño: Indica el número de elementos de la lista. Con las operaciones anteriores, define una interfase para una lista simple que contiene datos de tipo String. Estructura de Datos I Curso de Verano
Tipos parametrizados • Define una clase para implementar una Pila/Cola usando una lista. Los datos que se almacenaran serán tipo Object. • Que requiere un programa que use estas estructuras? • Define una clase parametrizada para implementar una Pila usando una lista. • Define una clase parametrizada para implementar una Cola usando una lista. Estructura de Datos I Curso de Verano
LISTAS DOBLES Una lista doble es una estructura lineal de elementos llamados nodos los cuales contienen dos campos de enlace: uno al elemento anterior y otro al elemento siguiente de la lista. El primer nodo de la lista contiene nulo en su enlace al elemento anterior y el último nodo de la lista contiene nulo en su enlace al elemento siguiente. Estructura del Nodo: Anterior Información Siguiente public class Nodo{ // atributos Object informacion; Nodo anterior; Nodo siguiente; // el constructor de nodos Nodo (Object n){ informacion = n; anterior = null; siguiente = null; } } Estructura de Datos I Curso de Verano
Ejemplos: Lista Vacía inicio = fin = Lista de un solo elemento inicio A fin Lista de tres elementos inicio A B C fin Estructura de Datos I Curso de Verano
Operaciones con listas dobles • • Insertar: Agrega un elemento a la lista. Eliminar: Retira un elemento de la lista. Buscar: Busca un elemento en la lista. Recorrer hacia adelante: Visita todos los elementos de la lista desde el inicio hasta el final. • Recorrer hacia atrás: Visita todos los elementos de la lista desde el final hasta el inicio. • Vacía: Indica si la lista contiene o no elementos. • Tamaño: Indica el número de elementos de la lista. Con las operaciones anteriores, define una interfase para una lista doble que contiene datos de tipo Integer. Estructura de Datos I Curso de Verano
LISTAS ENLAZADAS CON CABECERA Es una lista enlazada que contiene un nodo especial llamado nodo cabecera que se encuentra al inicio de la misma. NODO CABECERA. - Es un nodo especial que no contiene información, solo se utiliza para indicar el inicio de los elementos de la lista. La utilización de un nodo cabecera en listas enlazadas permiten que la implementación de los métodos de inserción y eliminación sea mas sencilla, ya que evitan tratar de forma explícita los casos especiales (insertar al inicio o eliminar el primer elemento). Sin embargo, requieren de un nodo extra en la lista (el nodo cabecera). Estructura de Datos I Curso de Verano
TIPOS DE LISTA ENLAZADA CON CABECERA: 1)LISTA CON CABECERA Y “TIERRA”: Es una lista enlazada con cabecera, donde el apuntador del último nodo contiene nulo. 2)LISTA CIRCULAR CON CABECERA: Es una lista enlazada con cabecera, donde el último nodo contiene un apuntador hacia la cabecera. Estructura de Datos I Curso de Verano
Representación: 1. - Lista simple c/cabecera y tierra: Inicio Nodo cabecera 2. - Lista circular c/cabecera: Nodo cabecera Inicio Estructura de Datos I Curso de Verano
Final de la presentación …Gracias
- Estructuras lineales
- Ecuaciones lineales objetivos
- Grafos
- Dinamica de integracion
- Gitanos actividades
- Dinmicas
- Ecuacion de nernst
- Pseudocódigo de pilas
- Matemticas
- Pilas y colas
- Estructura interna de una pila
- Concepto de pilas en programacion
- Disposicion de pilas usadas
- Esther flores cruz
- Sistemas lineales invariantes en el tiempo
- Ejemplo de ecuación lineal
- Funcion lineal formula
- Inecuaciones
- Tolerancias generales
- Sistema de ecuaciones lineales definición
- Leyes de logaritmo natural
- Función constante ejemplos
- Por el alquiler de un coche cobran una cuota fija
- Ejemplos de polímeros en la vida cotidiana
- Grfica
- Que son ecuaciones algebraicas
- Preguntas lineales
- Sistema de ecuaciones
- Concepto de fracciones parciales
- Macromoleculas lineales
- Lenguaje de ecuaciones
- Tablas de x y y
- Suma y resta de ecuaciones
- Ecuaciones de primer grado conclusion
- Elementos estructurales lineales
- Sistemas de ecuaciones en la empresa ejemplos
- Inecuaciones lineales con valor absoluto
- Cadenas cerradas homociclicas
- Unidad 4 sistemas de ecuaciones diferenciales lineales
- Cetohexosa