Estructuras de datos: Pilas, Colas, Listas
|
|
|
- Asunción Caballero Arroyo
- hace 9 años
- Vistas:
Transcripción
1 Estructuras de datos: Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge [email protected]
2 Índice Pilas 1 Pilas 2 3
3 Referencias bibliográficas Pilas M. A. Weiss., pilas y colas. En Estructuras de datos y algoritmos, capítulo 3, páginas Addison-Wesley Iberoamericana, R. Peña Marí. Implementación de estructuras de datos. En Diseño de Programas. Formalismo y abstracción, capítulo 7, páginas Prentice Hall, segunda edición, G. Brassard y T. Bratley. Estructura de datos. En Fundamentos de algoritmia, capítulo 5, páginas Prentice Hall, 1997.
4 Índice Pilas 1 Pilas 2 3
5 Pilas Acceso limitado al último elemento insertado Operaciones básicas: apilar, desapilar y cima. desapilar o cima en una pila vacía es un error en el TDA pila. Quedarse sin espacio al apilar es un error de implementación. Cada operación debería tardar una cantidad constante de tiempo en ejecutarse. Con independencia del número de elementos apiladas.
6 Pseudocódigo: Implementación a base de vectores (i) tipo Pila = registro Cima_de_pila : 0..Tamaño_máximo_de_pila Vector_de_pila : vector [1..Tamaño_máximo_de_pila] de Tipo_de_elemento fin registro procedimiento Crear Pila ( P ) P.Cima_de_pila := 0 fin procedimiento función Pila Vacía ( P ) : test devolver P.Cima_de_pila = 0 fin función
7 Pseudocódigo: Implementación a base de vectores (ii) procedimiento Apilar ( x, P ) si P.Cima_de_pila = Tamaño_máximo_de_pila entonces error Pila llena sino P.Cima_de_pila := P.Cima_de_pila + 1; P.Vector_de_pila[P.Cima_de_pila] := x fin procedimiento función Cima ( P ) : Tipo_de_elemento si Pila Vacía (P) entonces error Pila vacía sino devolver P.Vector_de_pila[P.Cima de Pila] fin función procedimiento Desapilar ( P ) si Pila Vacía (P) entonces error Pila vacía sino P.Cima_de_pila := P.Cima_de_pila - 1 fin procedimiento
8 Código C: pilas.h Pilas #ifndef TAMANO_MAXIMO_PILA #define TAMANO_MAXIMO_PILA 10 #endif typedef int tipo_elemento; typedef struct { int cima; tipo_elemento vector[tamano_maximo_pila]; pila; void crear_pila(pila *); int pila_vacia(pila); void apilar(tipo_elemento, pila *); tipo_elemento cima(pila); void desapilar(pila *); /* ERRORES: cima o desapilar sobre la pila vacía apilar sobre la pila llena */
9 Código C: pilas.c (i) #include <stdlib.h> #include <stdio.h> #include "pilas.h" void crear_pila(pila *p) { p->cima = -1; int pila_vacia(pila p) { return (p.cima == -1); void apilar(tipo_elemento x, pila *p) { if (++p->cima == TAMANO_MAXIMO_PILA) { printf("error: pila llena\n"); exit(exit_failure); p->vector[p->cima] = x;
10 Código C: pilas.c (ii) Pilas tipo_elemento cima(pila p) { if (pila_vacia(p)) { printf("error: pila vacia\n"); exit(exit_failure); return p.vector[p.cima]; void desapilar(pila *p) { if (pila_vacia(*p)) { printf("error: pila vacia\n"); exit(exit_failure); p->cima--;
11 Índice Pilas 1 Pilas 2 3
12 Pilas Operaciones básicas: insertar, quitarprimero y primero. Cada rutina debería ejecutarse en tiempo constante.
13 Implementación circular a base de vectores (i) La implementación circular devuelve cabeza y fin al principo del vector cuando rebasan la última posición. 1) Crear Cola (C) cabeza final
14 Implementación circular a base de vectores (i) La implementación circular devuelve cabeza y fin al principo del vector cuando rebasan la última posición. 1) Crear Cola (C) cabeza final final 2) Insertar en Cola (a,c) a cabeza
15 Implementación circular a base de vectores (i) La implementación circular devuelve cabeza y fin al principo del vector cuando rebasan la última posición. 1) Crear Cola (C) cabeza final final 2) Insertar en Cola (a,c) a cabeza final 3) Insertar en Cola (b,c) a b cabeza
16 Implementación circular a base de vectores (i) final 4) Insertar en Cola (c,c) a b c cabeza
17 Implementación circular a base de vectores (i) final 4) Insertar en Cola (c,c) a b c cabeza final 5) Insertar en Cola (d,c) a b c d cabeza
18 Implementación circular a base de vectores (i) final 4) Insertar en Cola (c,c) a b c cabeza final 5) Insertar en Cola (d,c) a b c d cabeza final 6) Quitar Primero (C) b c d cabeza
19 Implementación circular a base de vectores (i) final 4) Insertar en Cola (c,c) a b c cabeza final 5) Insertar en Cola (d,c) a b c d cabeza final 6) Quitar Primero (C) b c d cabeza final 7) Insertar en Cola (e,c) e b c d cabeza
20 Pseudocódigo (i) Pilas tipo Cola = registro Cabeza_de_cola, Final_de_cola: 1..Tamaño_máximo_de_cola Tamaño_de_cola : 0..Tamaño_máximo_de_cola Vector_de_cola : vector [1..Tamaño_máximo_de_cola] de Tipo_de_elemento fin registro procedimiento Crear_Cola ( C ) C.Tamaño_de_cola := 0; C.Cabeza_de_cola := 1; C.Final_de_cola := Tamaño_máximo_de_cola fin procedimiento función Cola_Vacía ( C ) : test devolver C.Tamaño_de_cola = 0 fin función
21 Pseudocódigo (ii) Pilas procedimiento incrementar ( x ) (* privado *) si x = Tamaño_máximo_de_cola entonces x := 1 sino x := x + 1 fin procedimiento procedimiento Insertar_en_Cola ( x, C ) si C.Tamaño_de_Cola = Tamaño_máximo_de_cola entonces error Cola llena sino C.Tamaño_de_cola := C.Tamaño_de_cola + 1; incrementar(c.final_de_cola); C.Vector_de_cola[C.Final_de_cola] := x; fin procedimiento
22 Pseudocódigo (iii) función Quitar_Primero ( C ) : Tipo_de_elemento si Cola_Vacía ( C ) entonces error Cola vacía sino C.Tamaño_de_cola := C.Tamaño_de_cola - 1; x := C.Vector_de_cola[C.Cabeza_de_cola]; incrementar(c.cabeza_de_cola); devolver x fin función función Primero ( C ) : Tipo_de_elemento si Cola_Vacía ( C ) entonces error Cola vacía sino devolver C.Vector_de_cola[C.Cabeza_de_cola] fin función
23 Código C: colas.h Pilas #ifndef TAMANO_MAXIMO_COLA #define TAMANO_MAXIMO_COLA 5 #endif typedef int tipo_elemento; typedef struct { int cabeza, final, tamano; tipo_elemento vector[tamano_maximo_cola]; cola; void crear_cola(cola *); int cola_vacia(cola); void insertar(tipo_elemento, cola *); tipo_elemento quitar_primero(cola *); tipo_elemento primero(cola); /* ERRORES: quitar_primero o primero sobre una cola vacía insertar en una cola llena */
24 Código C: colas.c (i) #include <stdlib.h> #include <stdio.h> #include "colas.h" void crear_cola(cola *c) { c->tamano = 0; c->cabeza = 0; c->final = -1; int cola_vacia(cola c) { return (c.tamano == 0); void incrementar(int *x) { /* privado */ if (++(*x) == TAMANO_MAXIMO_COLA) *x = 0;
25 Código C: colas.c (ii) void insertar(tipo_elemento x, cola *c) { if (c->tamano == TAMANO_MAXIMO_COLA) { printf("error: cola llena: %d\n", c->tamano); exit(exit_failure); c->tamano++; incrementar(&(c->final)); c->vector[c->final] = x; tipo_elemento primero(cola c) { if (cola_vacia(c)) { printf("error: cola vacia\n"); exit(exit_failure); return(c.vector[c.cabeza]);
26 Código C: colas.c (iii) Pilas tipo_elemento quitar_primero(cola *c) { tipo_elemento x; if (cola_vacia(*c)) { printf("error: cola vacia\n"); exit(exit_failure); c->tamano--; x = c->vector[c->cabeza]; incrementar(&(c->cabeza)); return x;
27 Índice Pilas 1 Pilas 2 3
28 Pilas Operaciones básicas: Visualizar su contenido. Buscar la posición de la primera ocurrencia de un elemento. Insertar y Eliminar un elemento en alguna posición. Buscar k esimo, que devuelve el elemento de la posición indicada
29 Implementación de listas a base de vectores Tiene que declararse el tamaño de la lista. Exige sobrevaloración. Consume mucho espacio. Complejidad computacional de las operaciones: Buscar k esimo, tiempo constante Visualizar y Buscar, tiempo lineal. Insertar y Eliminar son costosas. Insertar o eliminar un elemento exige, en promedio, desplazar la mitad de los valores, O(n). La construcción de una lista o la eliminación de todos sus elementos podría exigir un tiempo cuadrático.
30 Implementación de listas a base de apuntadores Cada nodo apunta al siguiente; el último no apunta a nada. La lista es un puntero al primer nodo (y al último). Complejidad computacional de las operaciones: Visualizar y Buscar, tiempo lineal. Buscar k esimo, tiempo lineal. Eliminar realiza un cambio de apuntadores y una orden dispose, O(1). Usa Buscar anterior cuyo tiempo de ejecución es lineal. Insertar tras una posición p require una llamada a new y dos maniobras con apuntadores, O(1). Buscar la posición p podría llevar tiempo lineal. Un nodo cabecera facilita la inserción y la eliminación al comienzo de la lista.
31 Implementación de listas doblemente enlazadas Cada nodo apunta al siguiente y al anterior. Duplica el uso de la memoria necesaria para los punteros. Duplica el coste de manejo de punteros al insertar y eliminar. La eliminación se simplifica. No es necesario buscar el elemento anterior.
32 Pseudocódigo: Implementación con un nodo cabecera (i) tipo PNodo = puntero a Nodo Lista = PNodo Posición = PNodo Nodo = registro Elemento : Tipo_de_elemento Siguiente : PNodo fin registro procedimiento Crear Lista ( L ) nuevo ( tmp ); si tmp = nil entonces error Memoria agotada sino tmpˆ.elemento := { nodo cabecera ; tmpˆ.siguiente := nil; L := tmp fin procedimiento
33 Pseudocódigo: Implementación con un nodo cabecera (ii) función Lista Vacía ( L ) : test devolver Lˆ.Siguiente = nil fin función función Buscar ( x, L ) : posición de la 1 a ocurrencia o nil p := Lˆ.Siguiente; mientras p <> nil y pˆ.elemento <> x hacer p := pˆ.siguiente; devolver p fin función función Último Elemento ( p ) : test { privada devolver pˆ.siguiente = nil fin función
34 Pseudocódigo: Implementación con un nodo cabecera (iii) función Buscar Anterior ( x, L ) : posición anterior a x o a nil { privada p := L; mientras pˆ.siguiente <> nil y pˆ.siguienteˆ.elemento <> x hacer p := pˆ.siguiente; devolver p fin función procedimiento Eliminar ( x, L ) p := Buscar Anterior ( x, L ); si Último Elemento ( p ) entonces error No encontrado sino tmp := pˆ.siguiente; pˆ.siguiente := tmpˆ.siguiente; liberar ( tmp ) fin procedimiento
35 Pseudocódigo: Implementación con un nodo cabecera (iv) procedimiento Insertar ( x, L, p ) nuevo ( tmp ); { Inserta después de la posición p si tmp = nil entonces error Memoria agotada sino tmpˆ.elemento := x; tmpˆ.siguiente := pˆ.siguiente: pˆ.siguiente := tmp fin procedimiento
36 Código C: listas.h (i) Pilas struct nodo { void *elem; /* void * es un apuntador generico */ struct nodo *sig; ; typedef struct nodo *posicion; typedef struct nodo *lista; lista crearlista(); int eslistavacia(lista l); void insertar(void *e, posicion p); /*inserta e tras el nodo apuntado por p*/ posicion buscar(lista l, void *e, int (*comp)(const void *x, const void *y)); /*la función comp devuelve un número mayor, igual o menor que cero, según x sea mayor, igual, o menor que y*/
37 Código C: listas.h (ii) Pilas void borrar(lista l, void *e, int (*comp)(const void *x, const void *y)); posicion primero(lista l); posicion siguiente(posicion p); int esfindelista(posicion p); void *elemento(posicion p); /* Para recorrer los elementos de la lista: for(p=primero(l);!esfindelista(p); p=siguiente(p)) { //hacer algo con elemento(p) */
38 Código C: listas.c (i) #include <stdlib.h> #include <stdio.h> #include "listas.h" static struct nodo *crearnodo(){ struct nodo *tmp = malloc(sizeof(struct nodo)); if (tmp == NULL) { printf("memoria agotada\n"); exit(exit_failure); return tmp; lista crearlista(){ struct nodo *l = crearnodo(); l->sig = NULL; return l;
39 Código C: listas.c (ii) int eslistavacia(lista l){ return (l->sig == NULL); void insertar(void *x, posicion p) { struct nodo *tmp = crearnodo(); tmp->elem = x; tmp->sig = p->sig; p->sig = tmp; posicion buscar(lista l, void *e, int (*comp)(const void *x, const void *y)){ struct nodo *p = l->sig; while (p!= NULL && 0!=(*comp)(p->elem, e)) p = p->sig; return p;
40 Código C: listas.c (iii) Pilas static posicion buscarant(lista l, void *x, int (*comp)(const void *, const void *)) { struct nodo *p = l; while (p->sig!= NULL && 0!=(*comp)(p->sig->elem, x)) p = p->sig; return p; static int esultimoelemento(struct nodo *p) { return (p->sig == NULL);
41 Código C: listas.c (iv) Pilas void borrar(lista l, void *x, int (*comp)(const void *, const void *)) { struct nodo *tmp, *p = buscarant(l, x, comp); if (!esultimoelemento(p)) { tmp = p->sig; p->sig = tmp->sig; free(tmp); posicion primero(lista l) { return l->sig; posicion siguiente(posicion p) { return p->sig; int esfindelista(posicion p) { return (p==null); void *elemento(posicion p) { return p->elem;
42
Estructuras de datos: Pilas, Colas, Listas
Estructuras de datos:,, Dep. de Computación - Fac. de Informática Universidad de A Coruña J. Santiago Jorge [email protected],, Índice 1 2 3,, Referencias bibliográficas M. A. Weiss., pilas y colas. En Estructuras
Estructuras de datos: Pilas, Colas, Listas
Estructuras de datos: Pilas,, Facultad de Informática Universidad de A Coruña Pilas,, Table of Contents Pilas 1 Pilas 2 3 Pilas,, Table of Contents Pilas 1 Pilas 2 3 Pilas,, Pilas Acceso limitado al último
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
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»
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
Tipos de Datos Abstractos TDA COLA. Representación de una cola
Tipos de Datos Abstractos TDA COLA Representación de una cola La estructura de datos COLA Su nombre se deriva de la metáfora de una cola de personas en una taquilla. La inserción y extracción de elementos
Estructuras de datos: Árboles binarios de
Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge [email protected] Árboles binarios de búsqueda, Table of Contents
Estructura de Datos. Pilas Colas. Primer Semestre, Indice. TDA: Pilas TDA: Colas Colas de Prioridad Anillos BiColas BiColas Circulares
Estructura de Datos Pilas Colas Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 2010 Indice TDA: Pilas TDA: Colas Colas de Prioridad Anillos BiColas BiColas Circulares Pilas - Stack Una de
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
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
Notas de estructura de datos con lenguaje C. Estructuras de datos dinámicas
Listas Enlazadas que está prohibida su impresión y distribución. Estructuras de datos dinámicas Contrariamente a las estructuras de datos estáticas (arreglos-listas, vectores y tablas- y estructuras) en
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
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
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
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.
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.
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
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
Estructuras de Datos
8 de marzo de 2011 1 2 3 4 5 Tipo de Dato Abstracto Un tipo de dato abstracto (TDA), corresponde a un conjunto de valores y un conjunto de operaciones sobre tales valores. s de TDA Enteros. Reales. Booleanos.
Estructura de Datos L I S T A
Estructura de Datos TDA L I S T A El TDA Lista El TDA Lista es una estructura compuesta por nodos (en los cuales se encuentran los datos almacenados) los cuales se encuentran enlazados entre si uno a uno
Capítulo. Listas, pilas y colas en C++ Contenido. Introducción
Capítulo 34 Listas, pilas y colas en C++ Contenido Tipo abstracto de datos lista Operaciones de listas enlazadas, clase lista Inserción en una lista Buscar un elemento y recorrer una lista enlazada Borrado
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
Programación TADs Lineales Lista Pila Cola
Programación 2 7- TADs Lineales Lista Pila Cola 1 TAD LISTA 2 Definición Hemos visto la definición inductiva de listas. Más precisamente, definimos inductivamente los tipos Alista, para cualquier tipo
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
4. Pilas ESTRUCTURAS DE DATOS 1
4. Pilas Una Pila es una colección de elementos homogéneos dispuestos en orden tal que se recuperan en orden inverso a como se introdujeron. La extracción e inserción de elementos en la Pila se realiza
Realizar el ejercicio anterior utilizando Punteros
PUNTEROS Y ARRAYS En C existe una relación entre punteros y arrays tal que cualquier operación que se pueda realizar mediante la indexación de un arrays, se puede realizar también con punteros. Para clarificar
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
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
12. COLAS Introducción Fundamentos
Ricardo Ferrís Castell Algoritmos y Estructuras de Datos I 12. COLAS 12.0 INTRODUCCIÓN...41 12.1 FUNDAMENTOS...41 12.2. REPRESENTACIÓN DE LAS COLAS EN C++...42 Implementación mediante estructuras estáticas:
13. LISTAS Introducción Listas con punto de interés
Ricardo Ferrís / Jesús Albert Algoritmos y Estructuras de Datos I 13. LISTAS 13.1. INTRODUCCIÓN...59 13.2. LISTAS CON PUNTO DE INTERÉS...59 13.3. IMPLEMENTACIÓN DE LA CLASE LISTA EN C++...63 13.3.1 Implementación
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
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
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*
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
12. LISTAS Introducción Listas con punto de interés
12. LISTAS 12.1. INTRODUCCIÓN... 1 12.2. LISTAS CON PUNTO DE INTERÉS... 1 12.3. IMPLEMENTACIÓN DE LA CLASE LISTA EN C++... 5 12.3.1 Implementación de la clase LISTA en C++ con vectores... 6 12.3.2 Implementación
Estructuras de datos: Tablas de dispersión
Estructuras de datos: Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge [email protected] Referencias bibliográficas M. A. Weiss. Dispersión. En Estructuras de datos y algoritmos,
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
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
Estructuras de Datos y Algoritmos
Estructuras de Datos y Algoritmos Especificación algebraica de TADs Ejemplos: Pilas, Colas, Listas Prof. Dr. P. Javier Herrera Índice Ejemplos de especificación algebraica de TADs. Pila Cola Lista Tema
Definición de árbol. Árboles
ÁRBOLES Árboles * Definición de árbol * Formas de representación * Nomenclatura sobre árboles * Árboles binarios * Declaración de árbol binario * Recorridos sobre árboles binarios * Construcción de un
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
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 [email protected]
ESTRUCTURAS DINÁMICAS DE DATOS (LISTAS)
2012 UNAN LEON Departamento de Computación Ing. En Sistemas de Información Docente: Ing. Karina Esquivel A. Asignatura: Algoritmo y Estructura de Datos. ESTRUCTURAS DINÁMICAS DE DATOS (LISTAS) TEMA 2:
Estructura de Datos Tema 6. Árboles. Contenido 14/06/2018
Estructura de Datos Tema 6. Árboles Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. [email protected] Contenido 1. Definición y operaciones
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
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
Estructura de Datos: Lista. Facultad Ingeniería y Tecnología Informática Tecnicatura en Programación de Computadoras. Autora: Prof.
Facultad Ingeniería y Tecnología Informática Tecnicatura en Programación de Computadoras Estructura de Datos: Lista Autora: Lunes a viernes de 9 a 21 h. Torre Universitaria, Zabala 1837, primer nivel inferior.
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
324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso 2015-2
324 MR Versión 1 Prueba Integral 1/3 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA MODELO DE RESPUESTA ASIGNATURA: Computación II CÓDIGO: 324 MOMENTO: Prueba Integral FECHA DE APLICACIÓN:
Estructuras de Datos Clase 4 Pilas y colas
Estructuras de Datos Clase 4 Pilas y colas Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Tipo
Lista Simple con Puntero al Principio y Puntero al Final
Unidad 3 Estructuras de Datos Avanzadas Introducción Hasta el momento se estudiaron las siguientes estructuras estáticas y dinámicas básicas para representar diferentes colecciones de elementos: Arreglo
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
TEMA 2 Estructuras de datos lineales
TEMA 2 Estructuras de datos lineales 1 Objetivos Conocer la especificación algebraica de las principales estructuras de datos lineales: Lista, pila y cola Conocer diferentes alternativas sobre el diseño
Estructura de Datos Tema 2. Colas. Contenido
Estructura de Datos Tema 2. Colas Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 [email protected] Contenido 1. Definición y operaciones
ELO320 Estructuras de Datos y Algoritmos. Stacks y Colas. Tomás Arredondo Vidal
ELO320 Estructuras de Datos y Algoritmos Stacks y Colas Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, ISBN 0-201-31663-3. 2001
Tema 7. Colas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía. {badia, bmartine,
Tema 7. Colas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía {badia, bmartine, morales}@icc.uji.es Estructuras de datos y de la información Universitat Jaume
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
11. PILAS Introducción Fundamentos
11. PILAS 11.0 INTRODUCCIÓN... 31 11.1 FUNDAMENTOS... 31 11.2. REPRESENTACIÓN DE LAS PILAS EN C++... 32 Implementación mediante estructuras estáticas... 36 Implementación mediante estructuras dinámicas...
Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios
Estructura de Datos Árboles Árboles Binarios Temario Unidad VI 6.1 Definición y operaciones 6.2 Implementación 6.3 Recorrido en Árboles Binarios 6.4 Árboles AVL y su implementación 6.5 Árboles n-arios
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 3: ESTRUCTURAS DINÁMICAS LINEALES. LISTAS ENLAZADAS, PILAS Y COLAS
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 3: ESTRUCTURAS DINÁMICAS LINEALES. LISTAS ENLAZADAS, PILAS Y COLAS ÍNDICE Listas enlazadas Pilas Colas DEFINICIÓN DEL TIPO LISTA
Estructura de Datos. TDA: Listas. Primer Semestre, 2010. Indice. Tipos de estructura de datos lineales
Estructura de Datos TDA: Listas Prof. Mauricio Solar Prof. Lorna Figueroa Parte del material fue obtenido de Lic. Claudio Barúa Primer Semestre, 2010 Indice Tipos de estructura de datos lineales Listas
Tema 4- Representación Enlazada
Tema 4- Representación Enlazada Tema 4: Representación Enlazada Índice general: 1. Representación Enlazada: Variables referencia Java como enlaces. 2. Listas Enlazadas Genéricas. Operaciones y costes.
Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda
Árboles Árboles Mario Medina C. [email protected] Árboles Estructura recursiva Árbol vacío 0 o más árboles hijos Altura ilimitada Árbol binario A lo más dos hijos: izquierdo y derecho Árboles Árboles
1 Introducción a los algoritmos y a la programación de computadoras... 1
Contenido - IX Contenido 1 Introducción a los algoritmos y a la programación de computadoras... 1 1.1 Introducción... 2 1.2 Concepto de algoritmo... 2 1.2.1 Definición de algoritmo y problema... 2 1.2.2
LISTAS CIRCULARES. // Métodos private CElemento() {} // constructor. ultimo
LISTAS CIRCULARES Una lista circular es una lista lineal en la que el último elemento apunta al primero. Entonces es posible acceder a cualquier elemento de la lista desde cualquier punto dado. Las operaciones
Tema 04: TAD Lista. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom
Tema 04: TAD Lista M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido TAD Lista Descripción del TAD Lista
Tablas de Dispersión (Hashing Tables)
Tablas de Dispersión (Hashing Tables) Las tablas de dispersión o hashing tables (en inglés) es una técnica que se utiliza para implementar inserciones, eliminaciones y búsquedas en un tiempo medio constante.
ESTRUCTURAS DE DATOS TEORÍA 2016/2017 PILAS
ESTRUCTURAS DE DATOS TEORÍA 2016/2017 PILAS 1 PILAS Una pila P es una estructura lineal tal que las inserciones, las consultas y las eliminaciones solo se permiten en un único punto. La pila puede no tener
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
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
Implementaciones de pilas, colas y afines. Memoria dinámica.
Implementaciones de pilas, colas y afines. Memoria dinámica. 1 1 Departamento de Computación, FCEyN, Universidad de Buenos Aires, Buenos Aires, Argentina Algoritmos y Estructuras de Datos II, segundo cuatrimestre
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
TAD Lineales: Pila, Cola y Lista
TAD Lineales: Pila, Cola y Lista Objetivos Conocer los TAD lineales, su funcionamiento y aplicaciones Conocer la especificación de cada uno de ellos Saber realizar implementaciones alternativas Saber usar
EJERCICIOS PARA EL PRIMER PARCIAL (de exámenes pasados)
Universidad Católica Andrés Bello Facultad de Ingeniería Escuela de Informática ALGORITMOS y PROGRAMACIÓN II EJERCICIOS PARA EL PRIMER PARCIAL (de exámenes pasados) 1. Ordenar el siguiente arreglo de enteros
Tipos de Datos Abstractos
Tipos de Datos Abstractos Facultad de Ciencias de la Computación Juan Carlos Conde R. Object-Oriented Programming I Contenido 1 Introducción 2 Estructura tipo LIFO 3 Estructura tipo FIFO 4 LISTAS Ligadas
TAD CONJUNTOS Y MULTICONJUNTOS
TAD CONJUNTOS Y MULTICONJUNTOS INTRODUCCIÓN Qué es un conjunto? Un conjunto en matemática es una colección de objetos. Los objetos no mantienen ninguna relación aparente entre ellos y tampoco están obligados
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.
11. PILAS Introducción Fundamentos
11. PILAS 11.0 INTRODUCCIÓN... 25 11.1 FUNDAMENTOS... 25 11.2. REPRESENTACIÓN DE LAS PILAS EN C++... 26 Implementación mediante estructuras estáticas... 31 Implementación mediante cursores... 35 Implementación
