Tipos de Datos Abstractos

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Tipos de Datos Abstractos"

Transcripción

1 Tipos de Datos Abstractos Facultad de Ciencias de la Computación Juan Carlos Conde R. Object-Oriented Programming I

2 Contenido 1 Introducción 2 Estructura tipo LIFO 3 Estructura tipo FIFO 4 LISTAS Ligadas 1 / 51

3 Contenido 1 Introducción 2 Estructura tipo LIFO 3 Estructura tipo FIFO 4 LISTAS Ligadas 2 / 51

4 Estructuras de Datos Una estructura de datos es un conjunto de variables, quizá de tipos distintos, que se relacionan entre sí y que se pueden operar como un todo. Son fundamentales para el manejo de información y el desarrollo de sistemas. Se clasican en la forma como permiten el acceso a los datos del conjunto. Algunas imponen restricciones, tales como permitir el acceso sólo al elemento más reciente o al menos reciente insertado. Aquí se tratan tres estructuras interesantes y útiles para diversas aplicaciones: Pilas, Colas y Listas. 3 / 51

5 Contenido 1 Introducción 2 Estructura tipo LIFO 3 Estructura tipo FIFO 4 LISTAS Ligadas 4 / 51

6 PILAS El término LIFO es del acrónimo Last In First Out y una PILA es una estructura de este tipo. Una pila es una lista de elementos en la cual los elementos se insertan o se eliminan sólo por uno de los extremos, es decir, el primero en entrar es el último en salir. Se dice que los elementos que se guardan en una estructura de este tipo se apilan, así que no es posible tomar el de hasta abajo sin antes quitar los de encima. 5 / 51

7 Representación de una PILA Las pilas no están denidas como tales en los lenguajes de programación, éstas se representan mediante el uso de Arreglos o Listas ligadas. Los elementos de una pila permiten que la pila crezca (hacia arriba) o decrezca (hacia abajo). 6 / 51

8 Representación de una PILA Para el manejo de la pila se requiere esencialmente de: TOPE de la Pila. Es un apuntador (subíndice del arreglo) al último elemento almacenado en la pila. Este apuntador se mueve sobre el arreglo, hacia arriba o hacia abajo, según la pila crezca o decrezca. Debe recordarse que un arreglo es una estructura estática, así, de manera real el tope se movería de la siguiente manera sobre el recipiente que contiene a la pila: 7 / 51

9 Movimientos del Tope 8 / 51

10 Operaciones sobre una PILA En una pila se pueden hacer dos operaciones: Insertar: meter a la pila (PUSH) Eliminar: sacar de la pila (POP) NOTA: Los elementos se insertan y se eliminan por un solo extremo. El estado inicial del tope es 0 (cuando la pila esta vacía). Este se decrementa cuando se inserta información en la pila y se incrementa cuando se elimina información de la misma. 9 / 51

11 Operación Push I Esta operación inserta elementos en la pila si ésta aún no esta llena. La pila esta llena cuando no hay mas lugares en el arreglo para seguir insertando información. Por ejemplo: Suponga que max = 4, entonces Estado inicial de la pila: Si se inserta un 15, es decir, push(15) 10 / 51

12 Operación Push II Si se inserta un 7, es decir, push(7) Entonces el Push quedaría como sigue: push (Dato) Inicio Si Tope < MAX entonces Tope Tope + 1 Pila[Tope] Dato Sino Escribir Pila llena Fin_si 11 / 51

13 Operación Pop I Esta operación elimina elementos en la pila si ésta aún no está vacía. La pila esta vacía cuando no hay elementos en el arreglo (como en el estado inicial). Por ejemplo: Suponga que max = 4 y que la pila ya tiene 2 elementos. Si se elimina un elemento entonces: El elemento se saca del tope de la pila (Dato Pila[Tope]) y el Tope se incrementa. 12 / 51

14 Operación Pop II Entonces Pop quedaría: pop () Inicio Si Tope > 0 entonces Tope Tope - 1 Dato Pila[Tope] Sino Escribir Pila vacía Fin_si Retorna Dato 13 / 51

15 #include <iostream.h> #include <stdio.h> enum estados{vacia,normal,sin_espacio}; class pila //Clase pila estática { int stack[100]; int tope, max; enum estados edo; public: pila(int t) { tope = 0; max = t} void push(int dato); int pop(void); void visualizar(void); void ver_estado(void); void pon_estado(void); enum estados obten_estado(void) { return edo;} }; 14 / 51

16 Ejemplo 2: FIBONACCI ACTIVIDAD En base a lo analizado anteriormente, codica la implementación de los siguientes métodos: void push(int dato); int pop(void); void visualizar(void); void ver_estado(void); void pon_estado(void); En base a tu experiencia y tu conocimiento sobre Programación Orientada a Objetos, determina si realmente es necesario el método: Justica tu respuesta. enum estados obten_estado(void) { return edo;} 15 / 51

17 Contenido 1 Introducción 2 Estructura tipo LIFO 3 Estructura tipo FIFO 4 LISTAS Ligadas 16 / 51

18 COLAS Una cola es una estructura tipo FIFO (First In First Out), así que el primero en entrar es el primero en salir. Una cola es una lista de elementos en la cual los elementos se insertan por un extremo y se eliminan por otro, es decir, los elementos salen en el mismo orden en que entraron. Se dice que los elementos que se guardan en una estructura de este tipo se encolan uno después del otro, de la misma forma que funcionan las colas en los bancos o en los supermercados. 17 / 51

19 Representación de una COLA Las colas no están denidas como tales en los lenguajes de programación, éstas se representan mediante el uso de Arreglos o Listas ligadas. Se dice que un Arreglo es un buen recipiente para una cola. 18 / 51

20 Representación de una COLA Para manejarla se requiere de dos apuntadores (subíndices): 1. Uno que anote al último elemento almacenado en la cola, denominado FONDO. 2. Otro que apunte al primer elemento almacenado en la cola, denominado FRENTE. 19 / 51

21 Operaciones sobre una PILA En una cola se pueden llevar a cabo dos operaciones: Insertar: meter dato en la cola Eliminar: sacar dato de la cola Los elementos se insertan por un extremo y se eliminan por el otro. Si se supone el siguiente esquema: 20 / 51

22 Comportamiento de los apuntadores donde max es igual a la última posición del arreglo y min es igual a la primera posición del arreglo, el estado inicial del fondo y del frente es min 1, esto es: Así, el Fondo se incrementa en uno cada vez que un elemento se inserta en la cola y el Frente se incrementa en uno cada vez que un elemento se elimina de la cola. 21 / 51

23 Operación de Inserción Esta operación inserta un elemento al nal de la cola, para lo cual mueve el apuntador Fondo e inserta, siempre que exista espacio para la inserción. Inserta_cola (Dato) Inicio Si Fondo < max entonces Fondo Fondo + 1 Cola[Fondo] Dato Si Frente < min entonces [con la primera inserción se mueve el apuntador Frente para indicar que ya se ha insertado un elemento en la cola] Frente Frente + 1 Fin_si Sino Escribir Cola llena Fin_si Fin 22 / 51

24 Operación de Eliminación Esta operación elimina un elemento del Frente de la cola siempre y cuando la cola tenga elementos. Si el Frente es igual al Fondo signica que se ha eliminado el último elemento, de no ser asi, el apuntador Frente se mueve para anotar al próximo elemento a ser eliminado. Elimina_cola( ) Inicio Si Frente >= min entonces Dato Cola[Frente] Si Frente = Fondo entonces [si se elimina el último elemento entonces se vuelve al estado inicial (cola Vacía)] Fondo min-1 Frente Fondo sino Frente Frente + 1 Fin_si Sino Escribir Cola Vacía' Fin_si Fin 23 / 51

25 Código ejemplo #include <iostream.h> // Clase cola class Cola { int c[100]; int e, s; int tamanio; }; public: void inicia (void); void pondato_cola (int i); int sacadato_cola (void); void pon_tamanio(int t){tamanio = t;} 24 / 51

26 Código ejemplo /*Definicion de metodos */ void Cola::inicia(void) { e = s = 0; } void Cola::pondato_cola(int i) { if (e == tamanio) cout La cola esta llena endl; c[e++]=i; } Cola::sacadato_cola(void) { if (e == s) { cout La cola esta vacía; return 0; } return c[s++]; } 25 / 51

27 Código ejemplo int main(void) { Cola a, b; // Objetos de la clase Cola a.inicia(); b.inicia(); a.pon_tamanio(5); b.pon_tamanio(8); a.pondato_cola(10); a.pondato_cola(20); b.pondato_cola(100); b.pondato_cola(200); cout COLA A : a.sacadato_cola() endl; cout COLA A : a.sacadato_cola() endl; cout COLA A : a.sacadato_cola() endl; cout COLA B : b.sacadato_cola() endl; cout COLA B : b.sacadato_cola() endl; } return 0; 26 / 51

28 Contenido 1 Introducción 2 Estructura tipo LIFO 3 Estructura tipo FIFO 4 LISTAS Ligadas 27 / 51

29 Denición En el caso de las Pilas y Colas se emplean estructuras estáticas en dónde la manipulación de datos es a través de posiciones localizadas secuencialmente. Para declarar estas estructuras se debe denir un tamaño determinado el cual NO puede modicarse posteriormente. En algunas ocasiones es más conveniente utilizar estructuras dinámicas, en las cuales se puede aumentar o disminuir de tamaño de la estructura de acuerdo a los requerimientos especícos de la aplicación. 28 / 51

30 Denición Una lista ligada es un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la organización no esta dada implícitamente por su posición en el arreglo. En una lista ligada cada elemento es un nodo que contiene el dato y además una liga al siguiente dato. Estas ligas son simplemente variables que contienen la(s) dirección(es) de los datos contiguos o relacionados. Para manejar una lista es necesario contar con un apuntador al primer elemento de la lista denominado raíz o cabeza. 29 / 51

31 Denición La ventaja principal de las listas ligadas es que: ½Permiten que sus tamaños cambien durante la ejecución del programa! Así, las listas se conocen como estructuras de datos dinámicas. 30 / 51

32 Operaciones En una lista ligada se pueden realizar básicamente 4 operaciones: 1. Recorrer: moverse sobre los elementos de la lista, partiendo del inicio y llegando al nal de la misma. 2. Insertar: añadir elementos a la lista. 3. Eliminar: quitar elementos de la lista. 4. Buscar: vericar la existencia de un elemento dado dentro de la lista. La inserción y la eliminación se pueden llevar a cabo: Al inicio de la lista Al nal de la lista Entre dos elementos de la lista 31 / 51

33 Notación Los nodos son almacenados en un espacio de memoria denominado Memoria del Montón (Heap), esta memoria es asignada por el procesador, a solicitud del programa, en tiempo de ejecución. Cuando la memoria es asignada se obtiene un apuntador (dirección) al elemento, así, se usa Crea_nodo(P) para indicar la asignación de memoria dinámica que es apuntada por P, esto es: 32 / 51

34 Notación Para referirse al dato almacenado en info o en liga se utiliza la notación: P.info P.liga Para indicar que el apuntador liga anota a nada se utiliza: 33 / 51

35 Notación Así el procedimiento del caso base, donde se crea un nuevo nodo para una lista que está vacía sería como: 34 / 51

36 Listas Simplemente Ligadas Una lista sencillamente ligada es un grupo de datos en dónde cada dato contiene un apuntador hacia el siguiente dato en la lista, es decir, una liga hacia el siguiente elemento. 35 / 51

37 Operación de Inserción Para insertar un dato en una lista simplemente ligada es necesario crear un nuevo nodo, recorrer la lista nodo por nodo hasta encontrar la posición adecuada y actualizar las ligas para insertar el nuevo nodo. CASO 1: Lista Desordenada Supóngase que se tiene una lista donde los datos se insertan siempre al nal de la misma sin importar el orden. En esta caso el algoritmo de inserción es el siguiente / 51

38 Operación de Inserción Inserción_lista_sencilla_desordenada(dato) Inicio Crea_nodo(P) P.info dato P.liga NULO Si Raíz = NULO entonces [Se coloca apuntador Raíz al primer elemento de la lista] Raíz P Sino [Se recorre la lista para encontrar la última posición] recorre Raíz Mientras recorre.liga <> NULO hacer recorre recorre.liga Fin_mientras [Se liga el nuevo nodo en la última posición] recorre.liga P Fin_si Fin 37 / 51

39 Operación de Inserción CASO 2: Lista Ordenada Si lo que se quiere es tener una lista donde los datos están ordenados ascendente o descendentemente, entonces el algoritmo cambia ligeramente. Aquí, durante el recorrido se verica que los nodos que se recorren tengan datos menores o mayores (según el caso) que el dato que se va a insertar. El algoritmo para una lista de datos ordenados de manera ascendente, es el siguiente / 51

40 Operación de Inserción Inserción_lista_sencilla_ordenada(dato) Inicio Crea_nodo(P) P.info dato [Si es el primer elemento de la lista] Si Raíz = NULO entonces [Se coloca apuntador Raíz al primer elemento de la lista] Raíz P Raíz.liga NULO Sino [Se recorre la lista para encontrar la posición correcta donde debe insertarse el nuevo nodo] recorre Raíz anterior recorre Mientras(recorre.liga<>NULO) y (recorre.info < dato) hacer anterior recorre recorre recorre.liga Fin_mientras 39 / 51

41 Operación de Inserción [Se verifica si la inserción es al inicio de la lista, al final o entre dos nodos para realizar las operaciones pertinentes] Si recorre.info < dato entonces [Se inserta al final] recorre.liga P p.liga NULO Sino Si recorre = Raíz entonces [insertar al inicio] Raíz P Raíz.liga recorre Sino [Se inserta entre dos nodos] anterior.liga P P.liga recorre Fin_si Fin_si Fin_si Fin 40 / 51

42 Operación de Inserción Es importante notar el uso de dos apuntadores durante el recorrido: anterior y recorre. anterior siempre esta anotando al nodo que precede al anotado por recorre, de tal forma que cuando se deba insertar entre dos nodos, se tengan apuntadores a los dos nodos entre los que se insertará, esto se ilustra a continuación: Suponga que se tiene la lista / 51

43 Operación de Inserción y que se desea insertar 10, entonces el proceso es: 42 / 51

44 Operación de Inserción En este momento la condición (recorre.liga<>nulo) y (recorre.info < dato) ya no se cumple y termina el recorrido, entonces se verica si debe insertarse al inicio, al nal o entre dos nodos. No se cumple al inicio (recorre <> Raíz), no es al nal (recorre.liga = NULO, pero recorre.info no es menor que dato), entonces es entre dos nodos: 43 / 51

45 Operación de Eliminación Para eliminar un dato de una lista sencillamente ligada es necesario recorrer la lista haciendo una búsqueda del elemento a eliminar: Mientras(recorre.liga<>NULO) y (recorre.info <> dato) hacer anterior recorre recorre recorre.liga Fin_mientras Aquí se pueden tener dos opciones: 44 / 51

46 Operación de Eliminación A) Encontrar el elemento al inicio, al nal o entre dos nodos. Suponga que se desea eliminar 5 (inicio de la lista): Entonces recorre se queda en la Raíz y la eliminación se realiza de la siguiente manera: Esto es: Si recorre.info = dato entonces Si recorre = Raíz entonces [se elimina de la Raíz] Raíz recorre.liga 45 / 51

47 Operación de Eliminación Suponga que desea eliminar 11 (nal de la lista): Esto es: Si recorre.info = dato entonces Si recorre = Raíz entonces [se elimina de la Raíz] Raíz recorre.liga Sino Si (recorre.liga = NULO)) entonces [esta al final de la lista] anterior.liga NULO 46 / 51

48 Operación de Eliminación Suponga que desea eliminar 7 (entre dos nodos): 47 / 51

49 Operación de Eliminación Esto es: Si recorre.info = dato entonces Si recorre = Raíz entonces [se elimina de la Raíz] Raíz recorre.liga Sino Si (recorre.liga = NULO) entonces [esta al final de la lista] anterior.liga NULO Sino [Esta entre dos nodos] anterior.liga recorre.liga Fin_si Fin_si Fin_si Pero como el último elemento de la lista apunta a NULO, entonces se puede reducir el algoritmo: Si recorre.info = dato entonces Si recorre = Raíz entonces [se elimina de la Raíz] Raíz recorre.liga Sino [si esta al final o entre dos nodos, se recorren las ligas] anterior.liga recorre.liga Fin_si Fin_si 48 / 51

50 Operación de Eliminación B) Llegar al nal de la lista sin encontrar el dato a eliminar. Si recorre.info = dato entonces Si recorre = Raíz entonces [se elimina de la Raíz] Raíz recorre.liga Sino [si esta al final o entre dos nodos, se recorren las ligas] anterior.liga recorre.liga Fin_si Sino [llego al final sin encontrar el dato] Escribir Dato no encontrado Fin_si 49 / 51

51 Operación de Eliminación Algoritmo completo: Eliminación_lista_sencilla(dato) Inicio Si Raíz <> NULO entonces recorre Raíz Mientras(recorre.liga<>NULO) y (recorre.info <> dato) hacer anterior recorre recorre recorre.liga Fin_mientras Si recorre.info = dato entonces [lo encontro] SI recorre = Raíz entonces [se elimina de la Raíz] Raíz recorre' libera_nodo(recorre) Sino [si esta al final o entre dos nodos, se recorren las ligas] anterior.liga recorre.liga libera_nodo(recorre) Fin_si Sino [no lo encontro] Escribir Dato no encontrado Fin_si Sino Escribir Lista Vacía Fin_si Fin 50 / 51

52 Sólo podemos ver poco del futuro pero lo suciente para darnos cuenta que hay mucho que hacer. [Alan Turing] Juan Carlos Conde R. 51 / 51

Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos.

Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos. Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos. Con relación a la Estructura LISTA Indicar objetos reales que se puedan modelar con dicha estructura. Listas de Ordenes de visitas

Más detalles

Las FILAS. ING PEDRO BELTRÁN CANESSA Estructuras de Datos 1

Las FILAS. ING PEDRO BELTRÁN CANESSA Estructuras de Datos 1 Las FILAS Estructuras de Datos 1 LA FILA (Conceptos...) Es un contenedor que utiliza el protocolo FIFO (First In, First Out) o bien, PEPS (Primeras Entradas, Primeras Salidas) Entrada Salida Estructuras

Más detalles

Tema 3. Estructura de datos lineales. J.T.P. Maria Eugenia Valesani - Programacion 1 - Fa.Ce.Na.

Tema 3. Estructura de datos lineales. J.T.P. Maria Eugenia Valesani - Programacion 1 - Fa.Ce.Na. Tema Estructura de datos lineales . Introducción Las estructuras de datos dinámicas son una colección de elementos (también llamados nodos) que normalmente son registros con la particularidad que crecen

Más detalles

UNIDAD 2. ESTRUCTURAS DE DATOS SECUENCIALES. 1. Pilas (Stacks)

UNIDAD 2. ESTRUCTURAS DE DATOS SECUENCIALES. 1. Pilas (Stacks) UNIDAD 2. ESTRUCTURAS DE DATOS SECUENCIALES 1. Pilas (Stacks) Una pila es una coleccion de elementos en la que sólo se pueden insertar y eliminar datos por uno de los extremos de la lista. Al igual que

Más detalles

Estructura de datos Colas

Estructura de datos Colas Estructura de Datos Estructura de datos Colas Temario Unidad II 2.1 Definición y operaciones 2.2 Implementación estática 2.3 Implementación dinámica 2.4 Colas de prioridad 2.5 Casos de estudio 1 Definición

Más detalles

Profesor: José Miguel Rubio L.

Profesor: José Miguel Rubio L. Profesor: José Miguel Rubio L. Magíster en Ingeniería Informática Ingeniero Civil en Informática Licenciado en Ciencias de la Ingeniería Técnico en Programación Oficina: 3-20 e-mail 1: jose.rubio.l@ucv.cl

Más detalles

Estructura de datos y algoritmos. Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES

Estructura de datos y algoritmos. Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES Estructura de datos y algoritmos Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES 4.1 Introducción 4.2 Ejemplos de TDA dinámicos lineales 4.3 Pilas 4.3.1

Más detalles

Estructuras Dinámicas de datos.

Estructuras Dinámicas de datos. Estructuras Dinámicas de datos. Las estructuras dinámicas de datos son estructuras que crecen a medida que ejecuta un programa. Una estructura dinámica de datos es una colección de elementos llamadas nodos

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) EN C

ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) EN C 2013 ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) EN C Departamento de Computación UNAN-León TEMA 5: ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) 5.1 INTRODUCCIÓN: Las colas son secuencias de elementos caracterizadas

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS)

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) 200 UNAN LEON Departamento de Computación Ingeniería en Sistema y Telemática Docente: Ing. Juan Carlos Antón S. Asignatura: Algoritmo y Estructuras de Datos ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) Pilas

Más detalles

Tema: Tipos Abstractos de Datos (TAD s) en C#.

Tema: Tipos Abstractos de Datos (TAD s) en C#. Programación II. Guía No. 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C#. Objetivos Comprender el concepto Tipo Abstracto de Datos

Más detalles

Un hombre caminaba por el bosque cuando vió una zorra lisiada. " Cómo hará para alimentarse?", pensó.

Un hombre caminaba por el bosque cuando vió una zorra lisiada.  Cómo hará para alimentarse?, pensó. Capitulo III Colas El camino del Tigre Un hombre caminaba por el bosque cuando vió una zorra lisiada. " Cómo hará para alimentarse?", pensó. En ese momento, se acercó un tigre, con un animal entre los

Más detalles

Tema 03: TAD Cola. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Tema 03: TAD Cola. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 03: TAD Cola M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Descripción del TAD Cola Especificación

Más detalles

Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México

Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Unidad Académica Profesional Tianguistenco Ingeniería de Software Estructura de Datos

Más detalles

Capítulo 5. LISTAS. 5.1 Listas y listas vinculadas. Una lista es una colección lineal de elementos.

Capítulo 5. LISTAS. 5.1 Listas y listas vinculadas. Una lista es una colección lineal de elementos. 53 Capítulo 5. LISTAS. 5.1 Listas y listas vinculadas. Una lista es una colección lineal de elementos. Las listas pueden ser almacenadas en arreglos ( de qué manera?), pero las listas enlazadas proporcionan

Más detalles

Estructura de Datos. Listas Enlazadas

Estructura de Datos. Listas Enlazadas Estructura de Datos Listas Enlazadas Conceptos de Lista enlazada Una lista enlazada es una secuencia de nodos que se interconectan mediante sus campos de enlace. Nodo: un objeto creado desde una clase

Más detalles

UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS

UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS Curso 2008-09 Examen parcial APELLIDOS: NOMBRE: 1. (0.5 puntos) Enumera las características de un algoritmo

Más detalles

Tema: Tipos Abstractos de Datos (TAD s) en C++.

Tema: Tipos Abstractos de Datos (TAD s) en C++. Programación II. Guía 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C++. Objetivos Específicos Explicar el concepto "Tipo Abstracto

Más detalles

Uno de los conceptos más útiles en ciencias de la computación es la pila.

Uno de los conceptos más útiles en ciencias de la computación es la pila. 23. PILA. (Stack). Tipos de Datos Abstractos. 23.1 Conceptos. Uno de los conceptos más útiles en ciencias de la computación es la pila. Una pila es una colección ordenada de elementos de igual tipo, en

Más detalles

Tema 8. Listas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz

Tema 8. Listas.  José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz Tema 8. Listas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información Universitat

Más detalles

Capitulo V Listas Enlazadas

Capitulo V Listas Enlazadas Capitulo V Listas Enlazadas Muere lentamente, quien abandona un proyecto antes de iniciarlo, no preguntando de un asunto que desconoce o no respondiendo cuando le indagan sobre algo que sabe. Evitemos

Más detalles

Unidad III: Estructuras lineales

Unidad III: Estructuras lineales Unidad III: Estructuras lineales Listas En Ciencias de la Computación, una lista enlazada es una de las estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de datos.

Más detalles

Solución práctico 6 Tipos Abstractos de Datos Lista, Pila y Cola

Solución práctico 6 Tipos Abstractos de Datos Lista, Pila y Cola Objetivos Trabajar sobre el Tipo Abstracto de Datos Lista, reforzando el desacople entre especificación e implementación. Retomar las implementaciones vistas, como ser Listas Doblemente Encadenadas, Listas

Más detalles

PILAS. Prof. Ing. M.Sc. Fulbia Torres

PILAS. Prof. Ing. M.Sc. Fulbia Torres S ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD II ESTRUCTURAS DE DATOS PILAS Definición. Operaciones. Implementación secuencial. Aplicaciones. Ejemplos. Ejercicios. DEFINICIÓN Una PILA (o stack) es una estructura

Más detalles

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año - Trabajo práctico Nº 7 (Resolución de problemas Estructura: pila y cola). Realiza el programa de cada situación problemática. 1- Cargar en una pila n letras del abecedario.(n debe ser menor a 30) 2- En

Más detalles

2. Con una lista ordenada, aunque la localización y eliminación es rápida el problema es en la inserción de datos pues puede ser del orden de O(n).

2. Con una lista ordenada, aunque la localización y eliminación es rápida el problema es en la inserción de datos pues puede ser del orden de O(n). Capítulo 7 Heap 7.1 Introducción Una cola de prioridad es una estructura de datos apropiada cuando la tarea más importante es localizar y/o eliminar el elemento con valor menor de una colección. Ejemplo

Más detalles

Estructura de Datos. Unidad de Aprendizaje: Unidad de Competencia II: Estructuras de Datos Lineales. M. en C. Edith Cristina Herrera Luna

Estructura de Datos. Unidad de Aprendizaje: Unidad de Competencia II: Estructuras de Datos Lineales. M. en C. Edith Cristina Herrera Luna Ingeniería en Computación Unidad de Aprendizaje: Estructura de Datos Unidad de Competencia II: Estructuras de Datos Lineales Marzo 2015 M. en C. Edith Cristina Herrera Luna ESTRUCTURAS DE DATOS Propósito

Más detalles

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

Más detalles

Estructura de datos y de la información Boletín de problemas - Tema 10

Estructura de datos y de la información Boletín de problemas - Tema 10 Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico

Más detalles

UNIDAD 9. DATOS COMPLEJOS PILAS

UNIDAD 9. DATOS COMPLEJOS PILAS UNI 9. TOS OMPLEJOS PILS Una pila es una lista de elementos en la que se pueden insertar y eliminar elementos sólo por uno de los extremos. omo consecuencia, los elementos de una pila serán eliminados

Más detalles

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año - Trabajo práctico Nº 7 (Resolución de problemas Estructura: pila y cola). Realiza el programa de cada situación problemática. 1- Cargar en una pila n letras del abecedario.(n debe ser menor a 30) 2- En

Más detalles

LISTAS. Prof. Ing. M.Sc. Fulbia Torres

LISTAS. Prof. Ing. M.Sc. Fulbia Torres LISTAS ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD II ESTRUCTURAS DE DATOS LISTAS Definición. Representación de Listas. Lista Lineal Simplemente Enlazada. Operaciones TAD LLSE. Implementación Dinámica. Otras

Más detalles

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ Fichero nodo.h #ifndef NODO_H #define NODO_H const int cantidad_nodos = 10; class Nodo private: string dato; Nodo* siguiente; public: Nodo(); void setdato(string

Más detalles

Hoja de ejercicios del Tema 9

Hoja de ejercicios del Tema 9 Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 9 1. Sin ejecutarlo, qué mostraría el siguiente código? int x = 5, y = 12, z;

Más detalles

Tema 5. Estructura de datos Pila

Tema 5. Estructura de datos Pila Tema 5. Estructura de datos Pila http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C 2013 ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C Departamento de Computación UNAN-León TEMA 4: ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) 4.1 INTRODUCCIÓN: En términos de listas lineales, una pila puede ser

Más detalles

1. El Tipo Abstracto de Datos.

1. El Tipo Abstracto de Datos. Tipo Abstracto de s TAD Pila y TAD Cola 1. El Tipo Abstracto de s. 2. Definición de un TAD Pila. 3. Operaciones sobre el TAD Pila. 4. Implementación dinámica del TAD Pila en C. 5. Definición de un TAD

Más detalles

Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y

Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y distribución. Listas Enlazadas Estructuras de datos dinámicas

Más detalles

Tema 7- Modelo y Aplicación de Pila, Cola y. Tema 7- Modelo y Aplicación de. Lista Con Punto de Interés

Tema 7- Modelo y Aplicación de Pila, Cola y. Tema 7- Modelo y Aplicación de. Lista Con Punto de Interés Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Índice general:. Modelo y Aplicación de Lista con Punto de Interés

Más detalles

2. ESTRUCTURAS BÁSICAS

2. ESTRUCTURAS BÁSICAS 2. ESTRUCTURAS BÁSICAS En el computador un conjunto (no vacío) de datos se almacenan en memoria; el área de memoria se denomina por el elemento X k ; esto es una celda, una unidad de memoria direccionable;

Más detalles

Biblioteca de templates. template <typename T> void eliminar(t arr[], int& len, int pos);

Biblioteca de templates. template <typename T> void eliminar(t arr[], int& len, int pos); ALGORITMOS Y ESTRUCTURA DE DATOS Machete Oficial 2014 Operaciones sobre arrays Biblioteca de templates Función: agregar Agrega el valor v al final del array arr e incrementa su longitud len. void agregar(t

Más detalles

Capítulo. Listas, pilas y colas en C. Contenido. Introducción

Capítulo. Listas, pilas y colas en C. Contenido. Introducción Capítulo 32 Listas, pilas y colas en C Contenido Listas enlazadas Clasificación de listas enlazadas Operaciones en listas enlazadas Inserción de un elemento en una lista Búsqueda de un elemento de una

Más detalles

Estructuras de datos en memoria principal

Estructuras de datos en memoria principal Estructuras de datos Estructuras de datos en memoria principal Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Actualización: 11

Más detalles

Tema 10: Árbol binario de búsqueda

Tema 10: Árbol binario de búsqueda Tema 10: Árbol binario de búsqueda M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Árbol binario de

Más detalles

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido

Más detalles

1. Una pila funciona según el método LIFO (Last In First Out ). Se define la clase Pila de la siguiente forma:

1. Una pila funciona según el método LIFO (Last In First Out ). Se define la clase Pila de la siguiente forma: Facultad de Ingeniería Establecimiento Público de Educación Superior, adscrito al Departamento de Antioquia Lógica de Programación II Taller Nº 3: Pilas, colas y recursividad Período 02 de 2014 Profesor:

Más detalles

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

Más detalles

Segundo Parcial de Programación 2 7 de junio de 2017

Segundo Parcial de Programación 2 7 de junio de 2017 Instituto de Computación. Facultad de Ingeniería. Universidad de la República Segundo Parcial de Programación 2 7 de junio de 2017 Problema 1 (30 puntos) Considere un TAD T que permita almacenar a lo sumo

Más detalles

Estructuras de datos en memoria principal

Estructuras de datos en memoria principal Estructuras de datos en memoria principal Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Estructuras de datos v Estructuras básicas

Más detalles

ELO320 Estructuras de Datos y Algoritmos. Listas. Tomás Arredondo Vidal

ELO320 Estructuras de Datos y Algoritmos. Listas. Tomás Arredondo Vidal ELO320 Estructuras de Datos y Algoritmos Listas Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, ISBN 0-201-31663-3. 2001 material

Más detalles

Estructuras dinámicas lineales (ii)

Estructuras dinámicas lineales (ii) Estructuras dinámicas lineales (ii) Introducción Continúa la exposición de los distintos algoritmos existentes para manipular s simplemente enlazadas; sin el lección anterior se presentaban algoritmos

Más detalles

Pilas, Colas. Andrea Rueda. Estructuras de Datos. Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas

Pilas, Colas. Andrea Rueda. Estructuras de Datos. Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Pilas, Colas Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Quiz: STL Quiz: STL Standard Template Library (STL) std::vector - Arreglo dinámico,

Más detalles

LISTAS ENLAZADAS FUNDAMENTOS TEORICOS

LISTAS ENLAZADAS FUNDAMENTOS TEORICOS LISTAS ENLAZADAS FUNDAMENTOS TEORICOS Una lista enlazada es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un «enlace»

Más detalles

Pilas y Colas. Cursos Propedéuticos Dr. René Cumplido M. en C. Luis Rodríguez Flores

Pilas y Colas. Cursos Propedéuticos Dr. René Cumplido M. en C. Luis Rodríguez Flores Pilas y Colas Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Pilas Estructura Operaciones Ejemplos de aplicación Implementación Colas Definición Operaciones

Más detalles

Estructura de Datos. Centro Universitario UAEM Valle de México. Unidad II. Estructuras de Datos Lineales - Listas

Estructura de Datos. Centro Universitario UAEM Valle de México. Unidad II. Estructuras de Datos Lineales - Listas Estructura de Datos Centro Universitario UAEM Valle de México Unidad II. Estructuras de Datos Lineales - Listas Licenciatura en Ingeniería en Computación Ph. D. Victor Manuel Landassuri Moreno vmlandassurim@uaemex.mx

Más detalles

Estructuras de Datos II

Estructuras de Datos II Estructuras de Datos II Segundo Parcial Los árboles B+ son estructuras de datos jerárquicas que se utilizan para almacenar y manipular datos ordenados de forma muy eficiente, ya que por su estructura y

Más detalles

Introducción: una simple colección

Introducción: una simple colección Introducción: una simple colección Implemente una clase denominada Lista. La clase deberá mantener una colección de números y proveer los siguientes i métodos: Listas dinámicas simplemente enlazadas Franco

Más detalles

Estructuras de datos: Árboles binarios de

Estructuras de datos: Árboles binarios de Estructuras de datos: Árboles binarios de búsqueda, Facultad de Informática Universidad de A Coruña Table of Contents Árboles binarios de búsqueda 1 Árboles binarios de búsqueda 2 Table of Contents Árboles

Más detalles

La finalidad de este tutorial es que sirva como herramienta visual de apoyo a

La finalidad de este tutorial es que sirva como herramienta visual de apoyo a 1.- INTRODUCCIÓN 1.1.- RESUMEN DE LA APLICACIÓN La finalidad de este tutorial es que sirva como herramienta visual de apoyo a estudiantes que están empezando a manejar estructuras de datos dinámicas, para

Más detalles

Listas enlazadas. Programación de Sistemas

Listas enlazadas. Programación de Sistemas Listas enlazadas Programación de Sistemas 1 Estructuras de datos Abstracción que representa un conjunto de datos en un programa con el objeto de facilitar su manipulación Diferentes estructuras de datos

Más detalles

TAD: Pila. TALLER: TAD Pila

TAD: Pila. TALLER: TAD Pila TALLER: TAD Una pila (stack) es un conjunto de elementos del mismo tipo que solamente puede crecer o decrecer por uno de sus extremos. Una pila también se la conoce con el nombre de estructura de tipo

Más detalles

Guía práctica de estudio 07. Estructuras de datos lineales: Lista simple y lista circular.

Guía práctica de estudio 07. Estructuras de datos lineales: Lista simple y lista circular. Guía práctica de estudio 07. Estructuras de datos lineales: Lista simple y lista circular. Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez

Más detalles

ÍNDICE 1. Índice Listas ordenadas Operaciones permitidas Pilas Operaciones permitidas...

ÍNDICE 1. Índice Listas ordenadas Operaciones permitidas Pilas Operaciones permitidas... ÍNDICE 1 Índice Índice 1 1. Introducción 2 2. Estructuras de datos 3 2.1. Consideraciones generales a todas las estructuras de datos......... 3 2.2. Listas...................................... 3 2.2.1.

Más detalles

Programación de sistemas

Programación de sistemas Programación de sistemas Listas enlazadas Julio Villena Román MATERIALES BASADOS EN EL TRABAJO DE DIFERENTES AUTORES: Carlos Delgado Kloos, Jesús Arias Fisteus, Carlos Alario Hoyos

Más detalles

Programación de sistemas Pilas y Colas

Programación de sistemas Pilas y Colas Programación de sistemas Pilas y Colas Departamento de Ingeniería Telemática 1 Contenidos Pilas (stacks) Colas (queues) Colas dobles (deques double-ended queues) 2 Pilas Estructura de datos lineal Inserción

Más detalles

Estructuras lineales de datos

Estructuras lineales de datos Estructuras lineales de datos Esta sección está orientada a comprender y manejar las estructuras lineales de datos, teniendo en cuenta la representación lógica y física de las mismas y el lenguaje de programación

Más detalles

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Práctico 4 Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Clasificación de ejercicios: (I) Imprescindibles (R) Recomendados (C) Complementarios Árboles balanceados (AVL)

Más detalles

Estructuras de Datos. La pila es un objeto dinámico en constante cambio.

Estructuras de Datos. La pila es un objeto dinámico en constante cambio. 21 Capítulo 2. LA PILA (STACK). 2.1 Definición y ejemplos. Una pila es un conjunto ordenado de elementos en el cual se pueden agregar y eliminar elementos de un extremo, el cual es llamado el tope de la

Más detalles

6. El TDA Lista Implementación con listas enlazadas. es de tipo genérico T. Pueden existir elementos repetidos (a diferencia de los conjuntos).

6. El TDA Lista Implementación con listas enlazadas. es de tipo genérico T. Pueden existir elementos repetidos (a diferencia de los conjuntos). 6. El TDA Lista 6.1. Definición 6.2. Operaciones del TDA 6.3. Implementación con vectores 6.4. Implementación con listas enlazadas 6.5. Comparativa Bibliografía: -Weiss - Aho, Hopcroft y Ullman 6.1. Definición

Más detalles

Para la Implementación Dinámica de listas: Se usa la asignación dinámica de memoria mediante punteros o referencias.

Para la Implementación Dinámica de listas: Se usa la asignación dinámica de memoria mediante punteros o referencias. Tema: Listas simple encadenadas. Manejo de pilas y colas dinámicas Objetivos: Que los alumnos logren Capacidad para usar, en forma eficiente los diagramas UML básicos. Habilidad para identificar las distintas

Más detalles

Tema 02: TAD Pila. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Tema 02: TAD Pila. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 02: TAD Pila M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Descripción

Más detalles

Tema 02: TAD Pila. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Tema 02: TAD Pila. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 02: TAD Pila M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Descripción

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (LISTAS)

ESTRUCTURAS DINÁMICAS DE DATOS (LISTAS) 2010 UNAN LEON Departamento de Computación Ing. En Sistemas Sabatino Docente: Ing. Karina Esquivel A. Asignatura: Practicas Profesionales. ESTRUCTURAS DINÁMICAS DE DATOS (LISTAS) TEMA 3: ESTRUCTURAS DINÁMICAS

Más detalles

Elaboro: Ing Jessica Verònica Munive Flores BLOQUE II FASE 5 PROGRAMACIÓN DE PÁGINAS WEB

Elaboro: Ing Jessica Verònica Munive Flores BLOQUE II FASE 5 PROGRAMACIÓN DE PÁGINAS WEB BLOQUE II FASE 5 PROGRAMACIÓN DE PÁGINAS WEB PROPÓSITO Para el Bloque II el propósito es que el estudiante desarrolle un Sitio Web mediante el uso de programación interpretando con conexión a base de datos.

Más detalles

Algoritmos y Estructuras de Datos Pilas LIFO y Colas FIFO. Guillermo Román Díez

Algoritmos y Estructuras de Datos Pilas LIFO y Colas FIFO. Guillermo Román Díez Algoritmos y Estructuras de Datos Pilas LIFO y Colas FIFO Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Pilas LIFO y Colas FIFO 1/12

Más detalles

Estructuras Enlazadas AyED UTN-BA

Estructuras Enlazadas AyED UTN-BA Funciones para estructuras enlazadas Sin Plantilla El Nodo Con plantilla para un dato genérico en info El Nodo struct Nodo1 int info; Nodo* sig; ; Nodo1* p1 = new Nodo1(); struct Nodo2 string info; Nodo*

Más detalles

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS TEMA 4. - La Estructura de datos Árbol 4.1. Árboles, definiciones 4.2 Árboles binarios y su representación 4.3 Operaciones básicas de un árbol binario

Más detalles

Tipos Recursivos de Datos

Tipos Recursivos de Datos 1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),

Más detalles

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS Capítulo 3 Estructuras de datos estáticas 1/37 1. INTRODUCCIÓN Las estructuras de datos se utilizan, generalmente, para procesar una colección de valores que están

Más detalles

A) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES

A) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES Capitulo 5. Arboles 1. Al recorrer el siguiente árbol en se visitan más nodos para llegar al número 38. Justifique su respuesta mostrando cada uno de los recorridos. Tipo de Recorrido Recorrido A) PREORDEN

Más detalles

1.2.4 Listas enlazadas

1.2.4 Listas enlazadas 1.2.4 Listas enlazadas Las listas enlazadas son tipos de datos dinámicos que se construyen con nodos. Un nodo es un registro con al menos, dos campos, uno de ellos contiene las componentes y se le denomina

Más detalles

Paso de parámetros. Universidad Europea de Madrid. Todos los derechos reservados.

Paso de parámetros. Universidad Europea de Madrid. Todos los derechos reservados. Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Algoritmos y estructuras de datos

Algoritmos y estructuras de datos Algoritmos y estructuras de datos Dr. Eduardo A. Rodríguez Tello Laboratorio de Tecnologías de Información Cinvestav Tamaulipas ertello@tamps.cinvestav.mx Cursos de inducción a la MCC Cinvestav Tamaulipas

Más detalles

4.1 Concepto de árbol.

4.1 Concepto de árbol. Apuntes Estructura de Datos Autor: Ing. Felipe Alanís González Página 1 4.1 Concepto de árbol. Una estructura de árbol es una forma de representar la JERARQUÍA de ciertos objetos en una forma gráfica.

Más detalles

Taller de Programación I. Tema 08: Estructuras Dinámicas de Datos en Java

Taller de Programación I. Tema 08: Estructuras Dinámicas de Datos en Java INACAP Universidad Tecnológica de Chile Sede Santiago Centro Taller de Programación I Curso Java J2SE Tema 08: Estructuras Dinámicas de Datos en Java Ing. Manuel López Ramos Parte I Qué son las estructuras

Más detalles

Alonso Ramírez Manzanares Computación y Algoritmos 10.03

Alonso Ramírez Manzanares Computación y Algoritmos 10.03 Recursividad mat-151 1 Ejercicio de recursión: dibujando una regla Queremos dibujar las marcas de diferentes tamaños de una regla. Marcas grandes cada 1/2 cm, marcas más pequeñas cada 1/4 cm... hasta una

Más detalles

PROGRAMA EDUCATIVO INFORMATICA ADMINISTRATIVA

PROGRAMA EDUCATIVO INFORMATICA ADMINISTRATIVA PROGRAMA EDUCATIVO INFORMATICA ADMINISTRATIVA UNIDAD DE APRENDIZAJE ADMINISTRACION DE BASES DE DATOS Unidad de competencia III Manejar las estructuras dinámicas en memoria secundaria Arboles ELABORACION

Más detalles

Tema 18: Memoria dinámica y su uso en C

Tema 18: Memoria dinámica y su uso en C Tema 18: Memoria dinámica y su uso en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1

Más detalles

Tema 5. Tipos Abstractos de Datos

Tema 5. Tipos Abstractos de Datos . E.U.Politécnica. I.T.Industrial (Electricidad) Tema 5. Tipos Abstractos de Datos. E.U. Politécnica Curso 2004-2005 Departamento Lenguajes y Ciencias de la Computación. Universidad de Málaga José Luis

Más detalles

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010 Estructura de Datos Árboles Binarios de Búsqueda ABB Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 20 1 Arboles de Búsqueda Binaria El árbol binario de búsqueda (ABB) toma su nombre del

Más detalles

Tema 08: TAD Árbol. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Tema 08: TAD Árbol. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 08: TAD Árbol M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Descripción del TAD Árbol Especificación

Más detalles

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º. Leonardo DaVinci. Piccasso La Tempestad. Mona Lisa

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º. Leonardo DaVinci. Piccasso La Tempestad. Mona Lisa 1. Ejercicio (3,5 puntos) a) Complentar la especificación public class Galeria { LinkedList cuadrosportitulo; LinkedList cuadrosporautor; LinkedListItr itrcuadrosportitulo; LinkedListItr itrcuadrosporautor;

Más detalles

Tema 6. Gestión dinámica de memoria

Tema 6. Gestión dinámica de memoria Tema 6. Gestión dinámica de memoria http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz@icc.uji.es Estructuras de datos y de la

Más detalles

ESTRUCTURAS BÁSICAS Concepto de datos estructurados.

ESTRUCTURAS BÁSICAS Concepto de datos estructurados. 8 ESTRUCTURAS BÁSICAS 8.1. Concepto de datos estructurados. En temas anteriores vimos la representación de los datos en un computador y los distintos tipos que hay: carácter (ASCII), real (o de coma flotante),

Más detalles

Unidad Nº V Listas Enlazadas

Unidad Nº V Listas Enlazadas Instituto Universitario Politécnico Santiago Mariño Unidad Nº V Listas Enlazadas Lista Enlazadas Es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta

Más detalles

Estructuras Dinámicas

Estructuras Dinámicas Departamento de Lenguajes yciencias de la Computación 4 Estructuras Dinámicas Contenido 1. Gestión dinámica de memoria. 2. El tipo puntero. 3. Operaciones con punteros. 4. Operaciones básicas sobre listas

Más detalles

Tema 13: Apuntadores en C

Tema 13: Apuntadores en C Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción

Más detalles

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos

Más detalles

Estructura de datos. Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Estructura de datos. Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos. 1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Estructura de datos Licenciatura en Informática IFM - 0412 3-2-8 2.- HISTORIA DEL

Más detalles

Estructura de datos. Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Estructura de datos. Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos. 1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Estructura de datos Licenciatura en Informática IFM - 0411 3-2-8 2.- HISTORIA DEL

Más detalles