Contenedores asociativos en la STL de C++

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

Download "Contenedores asociativos en la STL de C++"

Transcripción

1 Contenedores asociativos en la STL de C++ mat-151 Alonso Ramírez Manzanares Computación y Algoritmos 05.05

2 Variables y funciones estáticas de clase Alonso Ramírez Manzanares Computación y Algoritmos

3 Variables y funciones estáticas de clase Ejemplos: Pueden ser const y se inicializan afuera. Las funciones staticas accesan miembros estáticos Alonso Ramírez Manzanares Computación y Algoritmos

4 Contenedores en la STL de C++ Alonso Ramírez Manzanares Computación y Algoritmos

5 Contenedores en la STL de C++ Un contenedor es un objeto que guarda una colección de otros objetos. Alonso Ramírez Manzanares Computación y Algoritmos

6 Contenedores en la STL de C++ Un contenedor es un objeto que guarda una colección de otros objetos. Están implementados como templates, lo que les dá gran flexibilidad en los tipos que soportan. Alonso Ramírez Manzanares Computación y Algoritmos

7 Contenedores en la STL de C++ Un contenedor es un objeto que guarda una colección de otros objetos. Están implementados como templates, lo que les dá gran flexibilidad en los tipos que soportan. Los contenedores dan acceso a sus datos ya sea por acceso directo o a través de iteradores. Alonso Ramírez Manzanares Computación y Algoritmos

8 Contenedores en la STL de C++ Un contenedor es un objeto que guarda una colección de otros objetos. Están implementados como templates, lo que les dá gran flexibilidad en los tipos que soportan. Los contenedores dan acceso a sus datos ya sea por acceso directo o a través de iteradores. Los iteradores son objetos de referencia con propiedades similares a los apuntadores. Alonso Ramírez Manzanares Computación y Algoritmos

9 Contenedores en la STL de C++ Un contenedor es un objeto que guarda una colección de otros objetos. Están implementados como templates, lo que les dá gran flexibilidad en los tipos que soportan. Los contenedores dan acceso a sus datos ya sea por acceso directo o a través de iteradores. Los iteradores son objetos de referencia con propiedades similares a los apuntadores. Los contenedores implementan estructuras muy usadas en programación: arreglos dinámicos (vector), colas (queue), pilas (stack), montículos (priority_queue), listas ligadas (list), árboles (set), arreglos asociativos (map)... Alonso Ramírez Manzanares Computación y Algoritmos

10 Contenedores en la STL de C++ Alonso Ramírez Manzanares Computación y Algoritmos

11 Contenedores en la STL de C++ Varios contenedores pueden compartir funcionalidad. La decisión de cuál usar depende de la eficiencia de estas operaciones en cada contenedor. Alonso Ramírez Manzanares Computación y Algoritmos

12 Contenedores en la STL de C++ Varios contenedores pueden compartir funcionalidad. La decisión de cuál usar depende de la eficiencia de estas operaciones en cada contenedor. Contenedores secuenciales: Alonso Ramírez Manzanares Computación y Algoritmos

13 Contenedores en la STL de C++ Varios contenedores pueden compartir funcionalidad. La decisión de cuál usar depende de la eficiencia de estas operaciones en cada contenedor. Contenedores secuenciales: vector, deque, list Alonso Ramírez Manzanares Computación y Algoritmos

14 Contenedores en la STL de C++ Varios contenedores pueden compartir funcionalidad. La decisión de cuál usar depende de la eficiencia de estas operaciones en cada contenedor. Contenedores secuenciales: vector, deque, list Adaptadores de contenedor: Alonso Ramírez Manzanares Computación y Algoritmos

15 Contenedores en la STL de C++ Varios contenedores pueden compartir funcionalidad. La decisión de cuál usar depende de la eficiencia de estas operaciones en cada contenedor. Contenedores secuenciales: vector, deque, list Adaptadores de contenedor: stack, queue, priority_queue Alonso Ramírez Manzanares Computación y Algoritmos

16 Contenedores en la STL de C++ Varios contenedores pueden compartir funcionalidad. La decisión de cuál usar depende de la eficiencia de estas operaciones en cada contenedor. Contenedores secuenciales: vector, deque, list Adaptadores de contenedor: stack, queue, priority_queue Contenedores asociativos: Alonso Ramírez Manzanares Computación y Algoritmos

17 Contenedores en la STL de C++ Varios contenedores pueden compartir funcionalidad. La decisión de cuál usar depende de la eficiencia de estas operaciones en cada contenedor. Contenedores secuenciales: vector, deque, list Adaptadores de contenedor: stack, queue, priority_queue Contenedores asociativos: set, multiset, map, multimap. Alonso Ramírez Manzanares Computación y Algoritmos

18 Iteradores de contenedores Alonso Ramírez Manzanares Computación y Algoritmos

19 Iteradores de contenedores Existen para la gran mayoría de los contenedores estándar, y son definidos: Alonso Ramírez Manzanares Computación y Algoritmos

20 Iteradores de contenedores Existen para la gran mayoría de los contenedores estándar, y son definidos: Contenedor::iterador Alonso Ramírez Manzanares Computación y Algoritmos

21 Iteradores de contenedores Existen para la gran mayoría de los contenedores estándar, y son definidos: Contenedor::iterador permitiendo recorrer como un apuntador los datos con los operadores ++, ==,!=, y los dos iteradores predefinidos begin( ) y end( ). Alonso Ramírez Manzanares Computación y Algoritmos

22 Iteradores de contenedores Existen para la gran mayoría de los contenedores estándar, y son definidos: Contenedor::iterador permitiendo recorrer como un apuntador los datos con los operadores ++, ==,!=, y los dos iteradores predefinidos begin( ) y end( ). Alonso Ramírez Manzanares Computación y Algoritmos

23 Contenedores secuenciales Alonso Ramírez Manzanares Computación y Algoritmos

24 Contenedores secuenciales Variaciones en una secuencia lineal de valores. Alonso Ramírez Manzanares Computación y Algoritmos

25 Contenedores secuenciales Variaciones en una secuencia lineal de valores. Usan templates que dependen del elemento que almacenan. Alonso Ramírez Manzanares Computación y Algoritmos

26 Contenedores secuenciales Variaciones en una secuencia lineal de valores. Usan templates que dependen del elemento que almacenan. Inserción y eliminación. Alonso Ramírez Manzanares Computación y Algoritmos

27 Contenedores secuenciales Variaciones en una secuencia lineal de valores. Usan templates que dependen del elemento que almacenan. Inserción y eliminación. Acceso aleatorio ( no todos los contenedores ) Alonso Ramírez Manzanares Computación y Algoritmos

28 Contenedores secuenciales Variaciones en una secuencia lineal de valores. Usan templates que dependen del elemento que almacenan. Inserción y eliminación. Acceso aleatorio ( no todos los contenedores ) Pushing y popping en ambos extremos. Alonso Ramírez Manzanares Computación y Algoritmos

29 Contenedores secuenciales Variaciones en una secuencia lineal de valores. Usan templates que dependen del elemento que almacenan. Inserción y eliminación. Acceso aleatorio ( no todos los contenedores ) Pushing y popping en ambos extremos. class vector ( clase secuencial de uso general ) Alonso Ramírez Manzanares Computación y Algoritmos

30 Contenedores secuenciales Variaciones en una secuencia lineal de valores. Usan templates que dependen del elemento que almacenan. Inserción y eliminación. Acceso aleatorio ( no todos los contenedores ) Pushing y popping en ambos extremos. class vector ( clase secuencial de uso general ) class deque ( optimizado para insertar y eliminar elementos en los extremos, tiene acceso aleatorio ) Alonso Ramírez Manzanares Computación y Algoritmos

31 Contenedores secuenciales Variaciones en una secuencia lineal de valores. Usan templates que dependen del elemento que almacenan. Inserción y eliminación. Acceso aleatorio ( no todos los contenedores ) Pushing y popping en ambos extremos. class vector ( clase secuencial de uso general ) class deque ( optimizado para insertar y eliminar elementos en los extremos, tiene acceso aleatorio ) class list ( optimizado para acceso secuencial e inserción en cualquier posición, no para acceso aleatorio ) Alonso Ramírez Manzanares Computación y Algoritmos

32 Contenedores secuenciales: vector Alonso Ramírez Manzanares Computación y Algoritmos

33 Contenedores secuenciales: vector Están implementados como arreglos (como arreglos en C) dinámicos: Alonso Ramírez Manzanares Computación y Algoritmos

34 Contenedores secuenciales: vector Están implementados como arreglos (como arreglos en C) dinámicos: como los arreglos regulares sus elementos están almacenados en posiciones adyacentes en la memoria: permite usar iteradores y apuntadores. Alonso Ramírez Manzanares Computación y Algoritmos

35 Contenedores secuenciales: vector Están implementados como arreglos (como arreglos en C) dinámicos: como los arreglos regulares sus elementos están almacenados en posiciones adyacentes en la memoria: permite usar iteradores y apuntadores. el aumento o disminución del tamaño del vector (contrariamente a los arreglos regulares) es manejado automáticamente. Alonso Ramírez Manzanares Computación y Algoritmos

36 Contenedores secuenciales: vector Están implementados como arreglos (como arreglos en C) dinámicos: como los arreglos regulares sus elementos están almacenados en posiciones adyacentes en la memoria: permite usar iteradores y apuntadores. el aumento o disminución del tamaño del vector (contrariamente a los arreglos regulares) es manejado automáticamente. Acceder elementos individuales por su posición (índice) - O(1) Alonso Ramírez Manzanares Computación y Algoritmos

37 Contenedores secuenciales: vector Están implementados como arreglos (como arreglos en C) dinámicos: como los arreglos regulares sus elementos están almacenados en posiciones adyacentes en la memoria: permite usar iteradores y apuntadores. el aumento o disminución del tamaño del vector (contrariamente a los arreglos regulares) es manejado automáticamente. Acceder elementos individuales por su posición (índice) - O(1) Iterar los elementos en cualquier orden - O(n) Alonso Ramírez Manzanares Computación y Algoritmos

38 Contenedores secuenciales: vector Están implementados como arreglos (como arreglos en C) dinámicos: como los arreglos regulares sus elementos están almacenados en posiciones adyacentes en la memoria: permite usar iteradores y apuntadores. el aumento o disminución del tamaño del vector (contrariamente a los arreglos regulares) es manejado automáticamente. Acceder elementos individuales por su posición (índice) - O(1) Iterar los elementos en cualquier orden - O(n) Agregar o eliminar elementos al final - O(1) Alonso Ramírez Manzanares Computación y Algoritmos

39 Contenedores secuenciales: vector Están implementados como arreglos (como arreglos en C) dinámicos: como los arreglos regulares sus elementos están almacenados en posiciones adyacentes en la memoria: permite usar iteradores y apuntadores. el aumento o disminución del tamaño del vector (contrariamente a los arreglos regulares) es manejado automáticamente. Acceder elementos individuales por su posición (índice) - O(1) Iterar los elementos en cualquier orden - O(n) Agregar o eliminar elementos al final - O(1) Internamente los vectores - como todos los contenedores - tienen un tamaño, que representa el número de elementos en el vector. Alonso Ramírez Manzanares Computación y Algoritmos

40 Contenedores secuenciales: vector Alonso Ramírez Manzanares Computación y Algoritmos

41 Contenedores secuenciales: vector Los vectores también tienen capacidad, que determina el espacio adicional que se puede utilizar (para no re-dimensionar el tamaño de memoria cada vez). Alonso Ramírez Manzanares Computación y Algoritmos

42 Contenedores secuenciales: vector Los vectores también tienen capacidad, que determina el espacio adicional que se puede utilizar (para no re-dimensionar el tamaño de memoria cada vez). Re-dimensionar un vector es una operación costosa porque generalmente involucra re-copiar el vector. Alonso Ramírez Manzanares Computación y Algoritmos

43 Contenedores secuenciales: vector Los vectores también tienen capacidad, que determina el espacio adicional que se puede utilizar (para no re-dimensionar el tamaño de memoria cada vez). Re-dimensionar un vector es una operación costosa porque generalmente involucra re-copiar el vector. Se recomienda indicar explícitamente la capacidad para el vector con la función miembro: vector::reserve. Alonso Ramírez Manzanares Computación y Algoritmos

44 Contenedores secuenciales: vector Los vectores también tienen capacidad, que determina el espacio adicional que se puede utilizar (para no re-dimensionar el tamaño de memoria cada vez). Re-dimensionar un vector es una operación costosa porque generalmente involucra re-copiar el vector. Se recomienda indicar explícitamente la capacidad para el vector con la función miembro: vector::reserve. En su implementación en la STL de C++ los vectores toman dos parámetros: Alonso Ramírez Manzanares Computación y Algoritmos

45 Contenedores secuenciales: vector Los vectores también tienen capacidad, que determina el espacio adicional que se puede utilizar (para no re-dimensionar el tamaño de memoria cada vez). Re-dimensionar un vector es una operación costosa porque generalmente involucra re-copiar el vector. Se recomienda indicar explícitamente la capacidad para el vector con la función miembro: vector::reserve. En su implementación en la STL de C++ los vectores toman dos parámetros: template < class T, class Allocator = allocator<t> > class vector; Alonso Ramírez Manzanares Computación y Algoritmos

46 Contenedores secuenciales: vector Los vectores también tienen capacidad, que determina el espacio adicional que se puede utilizar (para no re-dimensionar el tamaño de memoria cada vez). Re-dimensionar un vector es una operación costosa porque generalmente involucra re-copiar el vector. Se recomienda indicar explícitamente la capacidad para el vector con la función miembro: vector::reserve. En su implementación en la STL de C++ los vectores toman dos parámetros: template < class T, class Allocator = allocator<t> > class vector; donde T es el tipo de elemento, Alonso Ramírez Manzanares Computación y Algoritmos

47 Contenedores secuenciales: vector Los vectores también tienen capacidad, que determina el espacio adicional que se puede utilizar (para no re-dimensionar el tamaño de memoria cada vez). Re-dimensionar un vector es una operación costosa porque generalmente involucra re-copiar el vector. Se recomienda indicar explícitamente la capacidad para el vector con la función miembro: vector::reserve. En su implementación en la STL de C++ los vectores toman dos parámetros: template < class T, class Allocator = allocator<t> > class vector; donde T es el tipo de elemento, y Allocator: tipo de modelo de reserva de memoria. Alonso Ramírez Manzanares Computación y Algoritmos

48 Contenedores secuenciales: vector Funciones miembro: Alonso Ramírez Manzanares Computación y Algoritmos

49 Contenedores secuenciales: vector Funciones miembro: (constructor) constructor del vector (destructor) destructor del vector operador = copia el contenido del vector Alonso Ramírez Manzanares Computación y Algoritmos

50 Contenedores secuenciales: vector Funciones miembro: (constructor) constructor del vector (destructor) destructor del vector operador = copia el contenido del vector Iteradores: Alonso Ramírez Manzanares Computación y Algoritmos

51 Contenedores secuenciales: vector Funciones miembro: (constructor) constructor del vector (destructor) operador = Iteradores: begin end rbegin rend destructor del vector copia el contenido del vector regresa el iterador al inicio regresa el iterador al final regresa el iterador reverso al inicio reverso regresa el iterador reverso al final reverso Alonso Ramírez Manzanares Computación y Algoritmos

52 Contenedores secuenciales: vector Funciones miembro: (constructor) constructor del vector (destructor) operador = Iteradores: begin end rbegin rend destructor del vector copia el contenido del vector regresa el iterador al inicio regresa el iterador al final regresa el iterador reverso al inicio reverso regresa el iterador reverso al final reverso Capacidad: Alonso Ramírez Manzanares Computación y Algoritmos

53 Contenedores secuenciales: vector Funciones miembro: (constructor) constructor del vector empty reserve prueba si el vector está vacío pide un cambio en la capacidad (destructor) operador = Iteradores: begin end rbegin rend destructor del vector copia el contenido del vector regresa el iterador al inicio regresa el iterador al final regresa el iterador reverso al inicio reverso regresa el iterador reverso al final reverso Capacidad: size regresa el tamaño max_size regresa el tamaño máximo resize capacity cambia el tamaño regresa la capacidad de almacenamiento Alonso Ramírez Manzanares Computación y Algoritmos

54 Contenedores secuenciales: vector Funciones miembro: (constructor) constructor del vector empty reserve prueba si el vector está vacío pide un cambio en la capacidad (destructor) operador = Iteradores: begin end rbegin rend destructor del vector copia el contenido del vector regresa el iterador al inicio regresa el iterador al final regresa el iterador reverso al inicio reverso regresa el iterador reverso al final reverso Acceso a elementos: Capacidad: size regresa el tamaño max_size regresa el tamaño máximo resize capacity cambia el tamaño regresa la capacidad de almacenamiento Alonso Ramírez Manzanares Computación y Algoritmos

55 Contenedores secuenciales: vector Funciones miembro: (constructor) constructor del vector empty reserve prueba si el vector está vacío pide un cambio en la capacidad (destructor) operador = Iteradores: begin end rbegin rend destructor del vector copia el contenido del vector regresa el iterador al inicio regresa el iterador al final regresa el iterador reverso al inicio reverso regresa el iterador reverso al final reverso Acceso a elementos: operador [] accede un elemento at accede un elemento front accede al primer elemento back accede al último elemento Capacidad: size regresa el tamaño max_size regresa el tamaño máximo resize capacity cambia el tamaño regresa la capacidad de almacenamiento Alonso Ramírez Manzanares Computación y Algoritmos

56 Contenedores secuenciales: vector Funciones miembro: (constructor) constructor del vector empty reserve prueba si el vector está vacío pide un cambio en la capacidad (destructor) operador = Iteradores: begin end rbegin rend destructor del vector copia el contenido del vector regresa el iterador al inicio regresa el iterador al final regresa el iterador reverso al inicio reverso regresa el iterador reverso al final reverso Acceso a elementos: operador [] accede un elemento at accede un elemento front accede al primer elemento back accede al último elemento Modificadores: Capacidad: size regresa el tamaño max_size regresa el tamaño máximo resize capacity cambia el tamaño regresa la capacidad de almacenamiento Alonso Ramírez Manzanares Computación y Algoritmos

57 Contenedores secuenciales: vector Funciones miembro: (constructor) constructor del vector empty reserve prueba si el vector está vacío pide un cambio en la capacidad (destructor) operador = Iteradores: begin end rbegin rend Capacidad: size destructor del vector copia el contenido del vector regresa el iterador al inicio regresa el iterador al final regresa el iterador reverso al inicio reverso regresa el iterador reverso al final reverso regresa el tamaño max_size regresa el tamaño máximo resize capacity cambia el tamaño regresa la capacidad de almacenamiento Acceso a elementos: operador [] at front back Modificadores: assign accede un elemento accede un elemento accede al primer elemento accede al último elemento asigna un contenido al vector push_back agrega un elemento al final pop_back insert erase swap clear elimina el último elemento inserta elementos borra elementos intercambia el contenido de vectores limpia el contenido Alonso Ramírez Manzanares Computación y Algoritmos

58 Contenedores secuenciales: vector Alonso Ramírez Manzanares Computación y Algoritmos

59 Contenedores secuenciales: vector Alonso Ramírez Manzanares Computación y Algoritmos

60 Contenedores secuenciales: vector Alonso Ramírez Manzanares Computación y Algoritmos

61 Contenedores secuenciales: vector Alonso Ramírez Manzanares Computación y Algoritmos

62 Contenedores secuenciales: vector Alonso Ramírez Manzanares Computación y Algoritmos

63 Contenedores secuenciales: vector Alonso Ramírez Manzanares Computación y Algoritmos

64 Contenedores secuenciales: deque Alonso Ramírez Manzanares Computación y Algoritmos

65 Contenedores secuenciales: deque double-ended-queue. Alonso Ramírez Manzanares Computación y Algoritmos

66 Contenedores secuenciales: deque double-ended-queue. Elementos individuales pueden ser accesados por su posición (índice). Alonso Ramírez Manzanares Computación y Algoritmos

67 Contenedores secuenciales: deque double-ended-queue. Elementos individuales pueden ser accesados por su posición (índice). Se puede iterar sobre todos los elementos en cualquier orden. Alonso Ramírez Manzanares Computación y Algoritmos

68 Contenedores secuenciales: deque double-ended-queue. Elementos individuales pueden ser accesados por su posición (índice). Se puede iterar sobre todos los elementos en cualquier orden. Los elementos pueden ser añadidos o eliminados eficientemente de los extremos - O(1) Alonso Ramírez Manzanares Computación y Algoritmos

69 Contenedores secuenciales: deque double-ended-queue. Elementos individuales pueden ser accesados por su posición (índice). Se puede iterar sobre todos los elementos en cualquier orden. Los elementos pueden ser añadidos o eliminados eficientemente de los extremos - O(1) Los elementos no se almacenan en espacios contiguos de la memoria (usa muchos bloques) Alonso Ramírez Manzanares Computación y Algoritmos

70 Contenedores secuenciales: deque double-ended-queue. Elementos individuales pueden ser accesados por su posición (índice). Se puede iterar sobre todos los elementos en cualquier orden. Los elementos pueden ser añadidos o eliminados eficientemente de los extremos - O(1) Los elementos no se almacenan en espacios contiguos de la memoria (usa muchos bloques) La implementación en C++ toma dos parámetros: Alonso Ramírez Manzanares Computación y Algoritmos

71 Contenedores secuenciales: deque double-ended-queue. Elementos individuales pueden ser accesados por su posición (índice). Se puede iterar sobre todos los elementos en cualquier orden. Los elementos pueden ser añadidos o eliminados eficientemente de los extremos - O(1) Los elementos no se almacenan en espacios contiguos de la memoria (usa muchos bloques) La implementación en C++ toma dos parámetros: template < class T, class Allocator = allocator<t> > class deque; Alonso Ramírez Manzanares Computación y Algoritmos

72 Contenedores secuenciales: deque Podríamos haber usado corchetes, pero esta llamada genera una exception cuando se está fuera de los límites. Alonso Ramírez Manzanares Computación y Algoritmos

73 Contenedores secuenciales: deque Podríamos haber usado corchetes, pero esta llamada genera una exception cuando se está fuera de los límites. Alonso Ramírez Manzanares Computación y Algoritmos

74 Contenedores secuenciales: list Alonso Ramírez Manzanares Computación y Algoritmos

75 Contenedores secuenciales: list Implementadas como listas doblemente ligadas. Alonso Ramírez Manzanares Computación y Algoritmos

76 Contenedores secuenciales: list Implementadas como listas doblemente ligadas. Inserción y eliminación eficiente (a diferencia de deque) de elementos en cualquier lugar de la secuencia (una vez encontrado, se usa insert, ver ejemplo en cplusplus) O(1). Alonso Ramírez Manzanares Computación y Algoritmos

77 Contenedores secuenciales: list Implementadas como listas doblemente ligadas. Inserción y eliminación eficiente (a diferencia de deque) de elementos en cualquier lugar de la secuencia (una vez encontrado, se usa insert, ver ejemplo en cplusplus) O(1). Iteración de los elementos en orden directo o reverso O(n). Alonso Ramírez Manzanares Computación y Algoritmos

78 Contenedores secuenciales: list Implementadas como listas doblemente ligadas. Inserción y eliminación eficiente (a diferencia de deque) de elementos en cualquier lugar de la secuencia (una vez encontrado, se usa insert, ver ejemplo en cplusplus) O(1). Iteración de los elementos en orden directo o reverso O(n). Son mejores para insertar, extraer y mover elementos de cualquier posición del contenedor (y en algoritmos que hacen uso intensivo de estas operaciones) Alonso Ramírez Manzanares Computación y Algoritmos

79 Contenedores secuenciales: list Implementadas como listas doblemente ligadas. Inserción y eliminación eficiente (a diferencia de deque) de elementos en cualquier lugar de la secuencia (una vez encontrado, se usa insert, ver ejemplo en cplusplus) O(1). Iteración de los elementos en orden directo o reverso O(n). Son mejores para insertar, extraer y mover elementos de cualquier posición del contenedor (y en algoritmos que hacen uso intensivo de estas operaciones) No tienen acceso directo a elementos en forma aleatoria y toman memoria adicional para almacenar información sobre los elementos (links). Alonso Ramírez Manzanares Computación y Algoritmos

80 Contenedores secuenciales: list Implementadas como listas doblemente ligadas. Inserción y eliminación eficiente (a diferencia de deque) de elementos en cualquier lugar de la secuencia (una vez encontrado, se usa insert, ver ejemplo en cplusplus) O(1). Iteración de los elementos en orden directo o reverso O(n). Son mejores para insertar, extraer y mover elementos de cualquier posición del contenedor (y en algoritmos que hacen uso intensivo de estas operaciones) No tienen acceso directo a elementos en forma aleatoria y toman memoria adicional para almacenar información sobre los elementos (links). template < class T, class Allocator=allocator<T> > class list; Alonso Ramírez Manzanares Computación y Algoritmos

81 Contenedores secuenciales: list Alonso Ramírez Manzanares Computación y Algoritmos

82 Contenedores secuenciales: list Alonso Ramírez Manzanares Computación y Algoritmos

83 Adaptadores de contenedores: stack Alonso Ramírez Manzanares Computación y Algoritmos

84 Adaptadores de contenedores: stack LIFO Alonso Ramírez Manzanares Computación y Algoritmos

85 Adaptadores de contenedores: stack LIFO Soporta las funciones empty, size, top, push, pop. Alonso Ramírez Manzanares Computación y Algoritmos

86 Adaptadores de contenedores: stack LIFO Soporta las funciones empty, size, top, push, pop. La implementación en C++ toma dos parámetros: Alonso Ramírez Manzanares Computación y Algoritmos

87 Adaptadores de contenedores: stack LIFO Soporta las funciones empty, size, top, push, pop. La implementación en C++ toma dos parámetros: template < class T, class Container = deque<t> > class stack; Alonso Ramírez Manzanares Computación y Algoritmos

88 Adaptadores de contenedores: stack LIFO Soporta las funciones empty, size, top, push, pop. La implementación en C++ toma dos parámetros: template < class T, class Container = deque<t> > class stack; donde T es el tipo de elementos Alonso Ramírez Manzanares Computación y Algoritmos

89 Adaptadores de contenedores: stack LIFO Soporta las funciones empty, size, top, push, pop. La implementación en C++ toma dos parámetros: template < class T, class Container = deque<t> > class stack; donde T es el tipo de elementos y Container es el tipo de contenedor utilizado para acceder y almacenar elementos. Alonso Ramírez Manzanares Computación y Algoritmos

90 Adaptadores de contenedores: stack LIFO Soporta las funciones empty, size, top, push, pop. La implementación en C++ toma dos parámetros: template < class T, class Container = deque<t> > class stack; donde T es el tipo de elementos y Container es el tipo de contenedor utilizado para acceder y almacenar elementos. Aplicaciones: Alonso Ramírez Manzanares Computación y Algoritmos

91 Adaptadores de contenedores: stack LIFO Soporta las funciones empty, size, top, push, pop. La implementación en C++ toma dos parámetros: template < class T, class Container = deque<t> > class stack; donde T es el tipo de elementos y Container es el tipo de contenedor utilizado para acceder y almacenar elementos. Aplicaciones: secuencias de undo en un editor de texto, Alonso Ramírez Manzanares Computación y Algoritmos

92 Adaptadores de contenedores: stack LIFO Soporta las funciones empty, size, top, push, pop. La implementación en C++ toma dos parámetros: template < class T, class Container = deque<t> > class stack; donde T es el tipo de elementos y Container es el tipo de contenedor utilizado para acceder y almacenar elementos. Aplicaciones: secuencias de undo en un editor de texto, memoria para llamadas a funciones. Alonso Ramírez Manzanares Computación y Algoritmos

93 Adaptadores de contenedores: stack Alonso Ramírez Manzanares Computación y Algoritmos

94 Adaptadores de contenedores: stack Alonso Ramírez Manzanares Computación y Algoritmos

95 Adaptadores de contenedores: queue Alonso Ramírez Manzanares Computación y Algoritmos

96 Adaptadores de contenedores: queue cola FIFO Alonso Ramírez Manzanares Computación y Algoritmos

97 Adaptadores de contenedores: queue cola FIFO Soporta las operaciones empty, size, front, back, push, pop. Alonso Ramírez Manzanares Computación y Algoritmos

98 Adaptadores de contenedores: queue cola FIFO Soporta las operaciones empty, size, front, back, push, pop. La implementación en C++ toma dos parámetros: Alonso Ramírez Manzanares Computación y Algoritmos

99 Adaptadores de contenedores: queue cola FIFO Soporta las operaciones empty, size, front, back, push, pop. La implementación en C++ toma dos parámetros: template < class T, class Container = deque <T> > class queue; Alonso Ramírez Manzanares Computación y Algoritmos

100 Adaptadores de contenedores: queue cola FIFO Soporta las operaciones empty, size, front, back, push, pop. La implementación en C++ toma dos parámetros: template < class T, class Container = deque <T> > class queue; Aplicaciones: Alonso Ramírez Manzanares Computación y Algoritmos

101 Adaptadores de contenedores: queue cola FIFO Soporta las operaciones empty, size, front, back, push, pop. La implementación en C++ toma dos parámetros: template < class T, class Container = deque <T> > class queue; Aplicaciones: Sistema de espera: filas de espera Alonso Ramírez Manzanares Computación y Algoritmos

102 Adaptadores de contenedores: priority_queue Alonso Ramírez Manzanares Computación y Algoritmos

103 Adaptadores de contenedores: priority_queue Diseñado para que el primer elemento sea siempre el más grande. Alonso Ramírez Manzanares Computación y Algoritmos

104 Adaptadores de contenedores: priority_queue Diseñado para que el primer elemento sea siempre el más grande. Solo se puede recuperar el elemento con la prioridad mayor. Alonso Ramírez Manzanares Computación y Algoritmos

105 Adaptadores de contenedores: priority_queue Diseñado para que el primer elemento sea siempre el más grande. Solo se puede recuperar el elemento con la prioridad mayor. Para tener la estructura de orden interno de montículo se necesita tener acceso aleatorio a los elementos. Alonso Ramírez Manzanares Computación y Algoritmos

106 Adaptadores de contenedores: priority_queue Diseñado para que el primer elemento sea siempre el más grande. Solo se puede recuperar el elemento con la prioridad mayor. Para tener la estructura de orden interno de montículo se necesita tener acceso aleatorio a los elementos. El orden se mantiene con los algoritmos make_heap, push_heap y pop_heap. Alonso Ramírez Manzanares Computación y Algoritmos

107 Adaptadores de contenedores: priority_queue Diseñado para que el primer elemento sea siempre el más grande. Solo se puede recuperar el elemento con la prioridad mayor. Para tener la estructura de orden interno de montículo se necesita tener acceso aleatorio a los elementos. El orden se mantiene con los algoritmos make_heap, push_heap y pop_heap. La implementación en C++ toma tres parametros: Alonso Ramírez Manzanares Computación y Algoritmos

108 Adaptadores de contenedores: priority_queue Diseñado para que el primer elemento sea siempre el más grande. Solo se puede recuperar el elemento con la prioridad mayor. Para tener la estructura de orden interno de montículo se necesita tener acceso aleatorio a los elementos. El orden se mantiene con los algoritmos make_heap, push_heap y pop_heap. La implementación en C++ toma tres parametros: template < class T, class Container = vector<t>, class Compare = less<typename Container::value_type> > class priority_queue; Alonso Ramírez Manzanares Computación y Algoritmos

109 Adaptadores de contenedores: priority_queue Diseñado para que el primer elemento sea siempre el más grande. Solo se puede recuperar el elemento con la prioridad mayor. Para tener la estructura de orden interno de montículo se necesita tener acceso aleatorio a los elementos. El orden se mantiene con los algoritmos make_heap, push_heap y pop_heap. La implementación en C++ toma tres parametros: template < class T, class Container = vector<t>, class Compare = less<typename Container::value_type> > class priority_queue; donde T es el tipo de elemento,container es el contenedor de base y Compare es la clase que implementa las funciones que determinan el orden. Alonso Ramírez Manzanares Computación y Algoritmos

110 Adaptadores de contenedores: priority_queue Alonso Ramírez Manzanares Computación y Algoritmos

111 Adaptadores de contenedores: priority_queue No usan iteradores Alonso Ramírez Manzanares Computación y Algoritmos

112 Adaptadores de contenedores: priority_queue No usan iteradores la función miembro pop() regresa el objeto prioritario mientras que top() solo regresa un apuntador hacia él. Alonso Ramírez Manzanares Computación y Algoritmos

113 Adaptadores de contenedores: priority_queue No usan iteradores la función miembro pop() regresa el objeto prioritario mientras que top() solo regresa un apuntador hacia él. Aplicaciones: Alonso Ramírez Manzanares Computación y Algoritmos

114 Adaptadores de contenedores: priority_queue No usan iteradores la función miembro pop() regresa el objeto prioritario mientras que top() solo regresa un apuntador hacia él. Aplicaciones: tareas de un robot ordenadas por prioridad Alonso Ramírez Manzanares Computación y Algoritmos

115 Adaptadores de contenedores: priority_queue No usan iteradores la función miembro pop() regresa el objeto prioritario mientras que top() solo regresa un apuntador hacia él. Aplicaciones: tareas de un robot ordenadas por prioridad pacientes de un hospital. Alonso Ramírez Manzanares Computación y Algoritmos

116 Alonso Ramírez Manzanares Computación y Algoritmos 05.05

117 Alonso Ramírez Manzanares Computación y Algoritmos 05.05

118 Contenedores de bits Alonso Ramírez Manzanares Computación y Algoritmos

119 Contenedores de bits A veces se puede necesitar manipular contenedores de bits (elementos con solo dos valores posibles 0 o 1, true y false...), particularmente en aplicaciones que tienen que ver con el hardware. Alonso Ramírez Manzanares Computación y Algoritmos

120 Contenedores de bits A veces se puede necesitar manipular contenedores de bits (elementos con solo dos valores posibles 0 o 1, true y false...), particularmente en aplicaciones que tienen que ver con el hardware. La clase es muy similar a un arreglo regular pero optimiza espacio para almacenamiento de estos tipos de datos. Alonso Ramírez Manzanares Computación y Algoritmos

121 Contenedores de bits A veces se puede necesitar manipular contenedores de bits (elementos con solo dos valores posibles 0 o 1, true y false...), particularmente en aplicaciones que tienen que ver con el hardware. La clase es muy similar a un arreglo regular pero optimiza espacio para almacenamiento de estos tipos de datos. Existen dos contenedores adaptados a este caso: Alonso Ramírez Manzanares Computación y Algoritmos

122 Contenedores de bits A veces se puede necesitar manipular contenedores de bits (elementos con solo dos valores posibles 0 o 1, true y false...), particularmente en aplicaciones que tienen que ver con el hardware. La clase es muy similar a un arreglo regular pero optimiza espacio para almacenamiento de estos tipos de datos. Existen dos contenedores adaptados a este caso: bitset<n>, patrón parametrizado por el número de bits a considerar (tamaño fijo), ejemplos de funciones: to_ulong, flip, etc. Alonso Ramírez Manzanares Computación y Algoritmos

123 Contenedores de bits A veces se puede necesitar manipular contenedores de bits (elementos con solo dos valores posibles 0 o 1, true y false...), particularmente en aplicaciones que tienen que ver con el hardware. La clase es muy similar a un arreglo regular pero optimiza espacio para almacenamiento de estos tipos de datos. Existen dos contenedores adaptados a este caso: bitset<n>, patrón parametrizado por el número de bits a considerar (tamaño fijo), ejemplos de funciones: to_ulong, flip, etc. vector<bool>, implementación optimizada de un vector en el caso de bits. Alonso Ramírez Manzanares Computación y Algoritmos

124 Contenedores asociativos Alonso Ramírez Manzanares Computación y Algoritmos

125 Contenedores asociativos Como su nombre lo indica, estos contenedores asocian llaves y valores en una sola estructura. Alonso Ramírez Manzanares Computación y Algoritmos

126 Contenedores asociativos Como su nombre lo indica, estos contenedores asocian llaves y valores en una sola estructura. La idea de poder acceder valores (objetos) a partir de la llave. Alonso Ramírez Manzanares Computación y Algoritmos

127 Contenedores asociativos Como su nombre lo indica, estos contenedores asocian llaves y valores en una sola estructura. La idea de poder acceder valores (objetos) a partir de la llave. set y multiset solo contienen valores ( en este caso son iguales que la llave ) Alonso Ramírez Manzanares Computación y Algoritmos

128 Contenedores asociativos Como su nombre lo indica, estos contenedores asocian llaves y valores en una sola estructura. La idea de poder acceder valores (objetos) a partir de la llave. set y multiset solo contienen valores ( en este caso son iguales que la llave ) map y multimap realizan asociación llave,valor usando el mismo tipo de estructuras. Alonso Ramírez Manzanares Computación y Algoritmos

129 Contenedores asociativos Como su nombre lo indica, estos contenedores asocian llaves y valores en una sola estructura. La idea de poder acceder valores (objetos) a partir de la llave. set y multiset solo contienen valores ( en este caso son iguales que la llave ) map y multimap realizan asociación llave,valor usando el mismo tipo de estructuras. La meta esencial de estos contenedores es probar de manera eficiente la existencia de objetos: por ejemplo si una palabra está o no en el diccionario y si está cual es su definición. Alonso Ramírez Manzanares Computación y Algoritmos

130 Contenedores asociativos Alonso Ramírez Manzanares Computación y Algoritmos

131 Contenedores asociativos Los métodos comunes entre ellos son: Alonso Ramírez Manzanares Computación y Algoritmos

132 Contenedores asociativos Los métodos comunes entre ellos son: insert( ) : agrega nuevos objetos si su llave no está ya en el contenedor Alonso Ramírez Manzanares Computación y Algoritmos

133 Contenedores asociativos Los métodos comunes entre ellos son: insert( ) : agrega nuevos objetos si su llave no está ya en el contenedor count( ) : cuenta el número de objetos que tiene una llave dada ( 0 o 1 en el caso de set y map y un entero positivo en el caso de multiset y multimap) Alonso Ramírez Manzanares Computación y Algoritmos

134 Contenedores asociativos Los métodos comunes entre ellos son: insert( ) : agrega nuevos objetos si su llave no está ya en el contenedor count( ) : cuenta el número de objetos que tiene una llave dada ( 0 o 1 en el caso de set y map y un entero positivo en el caso de multiset y multimap) find( ) : regresa un iterador sobre la posición en que se encuentra la primera llave dada o end( ) si no. Alonso Ramírez Manzanares Computación y Algoritmos

135 Contenedores asociativos: set Alonso Ramírez Manzanares Computación y Algoritmos

136 Contenedores asociativos: set Contenedor asociativo que almacena elementos únicos (las llaves) Alonso Ramírez Manzanares Computación y Algoritmos

137 Contenedores asociativos: set Contenedor asociativo que almacena elementos únicos (las llaves) La idea principal es determinar rápidamente una relación de membresia de un objeto con respecto al contenedor (noción de conjunto matemático). Alonso Ramírez Manzanares Computación y Algoritmos

138 Contenedores asociativos: set Contenedor asociativo que almacena elementos únicos (las llaves) La idea principal es determinar rápidamente una relación de membresia de un objeto con respecto al contenedor (noción de conjunto matemático). La implementación más común usa árboles binarios de búsqueda auto-equilibrados y por construcción ordena los datos. Alonso Ramírez Manzanares Computación y Algoritmos

139 Contenedores asociativos: set Contenedor asociativo que almacena elementos únicos (las llaves) La idea principal es determinar rápidamente una relación de membresia de un objeto con respecto al contenedor (noción de conjunto matemático). La implementación más común usa árboles binarios de búsqueda auto-equilibrados y por construcción ordena los datos. Los objetos ya no son nombrados por índice sino por su valor. Alonso Ramírez Manzanares Computación y Algoritmos

140 Contenedores asociativos: set Contenedor asociativo que almacena elementos únicos (las llaves) La idea principal es determinar rápidamente una relación de membresia de un objeto con respecto al contenedor (noción de conjunto matemático). La implementación más común usa árboles binarios de búsqueda auto-equilibrados y por construcción ordena los datos. Los objetos ya no son nombrados por índice sino por su valor. Diseñados para acceder los elementos por medio de su llave. Alonso Ramírez Manzanares Computación y Algoritmos

141 Contenedores asociativos: set Contenedor asociativo que almacena elementos únicos (las llaves) La idea principal es determinar rápidamente una relación de membresia de un objeto con respecto al contenedor (noción de conjunto matemático). La implementación más común usa árboles binarios de búsqueda auto-equilibrados y por construcción ordena los datos. Los objetos ya no son nombrados por índice sino por su valor. Diseñados para acceder los elementos por medio de su llave. Es util en las operaciones de unión, intersección, diferencia, y prueba de membresía. Alonso Ramírez Manzanares Computación y Algoritmos

142 Contenedores asociativos: set Contenedor asociativo que almacena elementos únicos (las llaves) La idea principal es determinar rápidamente una relación de membresia de un objeto con respecto al contenedor (noción de conjunto matemático). La implementación más común usa árboles binarios de búsqueda auto-equilibrados y por construcción ordena los datos. Los objetos ya no son nombrados por índice sino por su valor. Diseñados para acceder los elementos por medio de su llave. Es util en las operaciones de unión, intersección, diferencia, y prueba de membresía. El tipo de dato debe implementar un operador de comparación. Alonso Ramírez Manzanares Computación y Algoritmos

143 Contenedores asociativos: set Alonso Ramírez Manzanares Computación y Algoritmos

144 Contenedores asociativos: set Su implementación en C++ toma tres parámetros: Alonso Ramírez Manzanares Computación y Algoritmos

145 Contenedores asociativos: set Su implementación en C++ toma tres parámetros: template < class Key, class Compare = less<key>, class Allocator = allocator<key> > class set. Alonso Ramírez Manzanares Computación y Algoritmos

146 Contenedores asociativos: set Su implementación en C++ toma tres parámetros: template < class Key, class Compare = less<key>, class Allocator = allocator<key> > class set. donde Key es el tipo de elementos llave en el contenedor. Cada elemento en un conjunto es también su llave. Alonso Ramírez Manzanares Computación y Algoritmos

147 Contenedores asociativos: set Su implementación en C++ toma tres parámetros: template < class Key, class Compare = less<key>, class Allocator = allocator<key> > class set. donde Key es el tipo de elementos llave en el contenedor. Cada elemento en un conjunto es también su llave. Compare es la función de comparación y regresa un bool. Alonso Ramírez Manzanares Computación y Algoritmos

148 Contenedores asociativos: set Su implementación en C++ toma tres parámetros: template < class Key, class Compare = less<key>, class Allocator = allocator<key> > class set. donde Key es el tipo de elementos llave en el contenedor. Cada elemento en un conjunto es también su llave. Compare es la función de comparación y regresa un bool. Allocator es el objeto para definir el modelo de almacenamiento. Alonso Ramírez Manzanares Computación y Algoritmos

149 Contenedores asociativos: set Alonso Ramírez Manzanares Computación y Algoritmos

150 Contenedores asociativos: set Ejemplo: índice de un libro Alonso Ramírez Manzanares Computación y Algoritmos

151 Contenedores asociativos: set Ejemplo: índice de un libro leer el texto del libro Alonso Ramírez Manzanares Computación y Algoritmos

152 Contenedores asociativos: set Ejemplo: índice de un libro leer el texto del libro para cada palabra encontrada, intentar añadirla en el set Alonso Ramírez Manzanares Computación y Algoritmos

153 Contenedores asociativos: set Ejemplo: índice de un libro leer el texto del libro para cada palabra encontrada, intentar añadirla en el set si ya está, dejarla Alonso Ramírez Manzanares Computación y Algoritmos

154 Contenedores asociativos: set Ejemplo: índice de un libro leer el texto del libro para cada palabra encontrada, intentar añadirla en el set si ya está, dejarla si no está, añadirla al set de tal manera que el conjunto quede ordenado y el árbol subyacente esté equilibrado. Alonso Ramírez Manzanares Computación y Algoritmos

155 Contenedores asociativos: set Alonso Ramírez Manzanares Computación y Algoritmos

156 Contenedores asociativos: set Alonso Ramírez Manzanares Computación y Algoritmos

157 Contenedores asociativos: multiset Alonso Ramírez Manzanares Computación y Algoritmos

158 Contenedores asociativos: multiset El contenedor multiset tiene la propiedad de poder almacenar varios elementos con la misma llave. Alonso Ramírez Manzanares Computación y Algoritmos

159 Contenedores asociativos: multiset El contenedor multiset tiene la propiedad de poder almacenar varios elementos con la misma llave. Su implementación en C++ toma tres parámetros Alonso Ramírez Manzanares Computación y Algoritmos

160 Contenedores asociativos: multiset El contenedor multiset tiene la propiedad de poder almacenar varios elementos con la misma llave. Su implementación en C++ toma tres parámetros template < class key, class Compare = less<key>, class Allocator=allocator<key> > class multiset; Alonso Ramírez Manzanares Computación y Algoritmos

161 Contenedores asociativos: multiset Text Alonso Ramírez Manzanares Computación y Algoritmos

162 Contenedores asociativos: multiset Text Alonso Ramírez Manzanares Computación y Algoritmos

163 Contenedores asociativos: map Alonso Ramírez Manzanares Computación y Algoritmos

164 Contenedores asociativos: map Contenedores formados de la combinación llave y valor. Alonso Ramírez Manzanares Computación y Algoritmos

165 Contenedores asociativos: map Contenedores formados de la combinación llave y valor. La llave se usa para identificar de manera única al elemento mientras que el valor mapeado está asociado a la llave. Alonso Ramírez Manzanares Computación y Algoritmos

166 Contenedores asociativos: map Contenedores formados de la combinación llave y valor. La llave se usa para identificar de manera única al elemento mientras que el valor mapeado está asociado a la llave. Un ejemplo típico de un map es la guía telefónica donde el nombre es la llave y el número telefónico es el valor mapeado. Alonso Ramírez Manzanares Computación y Algoritmos

167 Contenedores asociativos: map Contenedores formados de la combinación llave y valor. La llave se usa para identificar de manera única al elemento mientras que el valor mapeado está asociado a la llave. Un ejemplo típico de un map es la guía telefónica donde el nombre es la llave y el número telefónico es el valor mapeado. Internamente los elementos del mapa están ordenados de menor a mayor valor de llave. Alonso Ramírez Manzanares Computación y Algoritmos

168 Contenedores asociativos: map Contenedores formados de la combinación llave y valor. La llave se usa para identificar de manera única al elemento mientras que el valor mapeado está asociado a la llave. Un ejemplo típico de un map es la guía telefónica donde el nombre es la llave y el número telefónico es el valor mapeado. Internamente los elementos del mapa están ordenados de menor a mayor valor de llave. Están diseñados para ser eficientes obteniendo sus elementos por una llave. Alonso Ramírez Manzanares Computación y Algoritmos

169 Contenedores asociativos: map Contenedores formados de la combinación llave y valor. La llave se usa para identificar de manera única al elemento mientras que el valor mapeado está asociado a la llave. Un ejemplo típico de un map es la guía telefónica donde el nombre es la llave y el número telefónico es el valor mapeado. Internamente los elementos del mapa están ordenados de menor a mayor valor de llave. Están diseñados para ser eficientes obteniendo sus elementos por una llave. Están implementados con árboles binarios de búsqueda auto-equilibrados. Alonso Ramírez Manzanares Computación y Algoritmos

Listas, pilas, colas

Listas, pilas, colas Listas, pilas, colas Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas TAD Tipo Abstracto de Dato Qué es un TAD? TAD: Tipo Abstracto de Dato. Nuevo

Más detalles

Tema 7. Colas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía. {badia, bmartine,

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

Más detalles

TEMA 4 El tipo conjunto

TEMA 4 El tipo conjunto TEMA El tipo conjunto PROGRAMACIÓN Y ESTRUCTURAS DE DATOS Tipo conjunto. Definiciones generales. Diccionario.. Tabla de dispersión.. Trie.. Árboles de búsqueda digitales. Cola de prioridad.. Montículo..

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

Contenedores asociativos de la STL

Contenedores asociativos de la STL Contenedores asociativos Contenedores asociativos de la STL Programación Orientada a Objeto Ing. Civil en Telecomunicaciones Contenedores vistos hasta ahora son secuenciales Orden de los elementos en el

Más detalles

CAPÍTULO 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS

CAPÍTULO 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS CONTENIDO PRÓLOGO XIX CAPÍTULO 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS 1.1 Introducción 2 1.2 Resolución de problemas mediante la computadora 3 1.3 Conceptos de programación orientada a objetos

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

En las preguntas 1-30 indique la respuesta correcta. e= ninguna de las anteriores

En las preguntas 1-30 indique la respuesta correcta. e= ninguna de las anteriores Estructuras de Información... 1 En las preguntas 1-30 indique la respuesta correcta. e= ninguna de las anteriores 1. Cuál de las siguientes afirmaciones es falsa: a. Un nodo es un objeto, un link es un

Más detalles

Tema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom

Tema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Tema 05: Tablas hash M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Tablas hash o de dispersión Función

Más detalles

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

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

CONTENEDORES DE LA BIBLIOTECA

CONTENEDORES DE LA BIBLIOTECA UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Telecomunicación CONTENEDORES DE LA BIBLIOTECA ESTÁNDAR Tema 5 Programación II Programación II 0 Tema 5: CONTENEDORES DE LA BIBLIOTECA ESTÁNDAR

Más detalles

STL: Standard Templates Library

STL: Standard Templates Library : Standard Templates Library Biblioteca estándar de plantillas Prof. Dr. Nicolás Luis Fernández García Departamento de Informática y Análisis Numérico Escuela Politécnica Superior de Córdoba Universidad

Más detalles

Tablas Hash y árboles binarios

Tablas Hash y árboles binarios Tablas Hash y árboles binarios Algoritmos Tablas hash Árboles Binarios Árboles Balanceados Tablas Hash Introducción Las tablas hash son estructuras tipo vector que ayudan a asociar claves con valores o

Más detalles

Conceptos básicos de bases de datos

Conceptos básicos de bases de datos Conceptos básicos de bases de datos En este artículo se realiza una breve introducción a las bases de datos: qué son, por qué podría querer usar una y cuáles son las funciones de las distintas partes de

Más detalles

PROGRAMACIÓN N C++ CONSTRUCTORES PROG.C++ L11 CONSTRUCTORES DEL LENGUAJE

PROGRAMACIÓN N C++ CONSTRUCTORES PROG.C++ L11 CONSTRUCTORES DEL LENGUAJE L11 CONSTRUCTORES DEL LENGUAJE CLASES class { } PLANTILLAS template { } ESPACIOS DE NOMBRES namespace { } EXCEPCIONES try catch.. SOBRECARGA DE OPERADORES operator (parametros) BIBLIOTECA

Más detalles

Introducción a MATLAB

Introducción a MATLAB Introducción a MATLAB Sistemas Conexionistas - Curso 07/08 MATLAB es un sistema interactivo basado en matrices para cálculos científicos y de ingeniería. Se pueden resolver problemas numéricos relativamente

Más detalles

2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS 2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS 2.1 Tipos De Datos Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como b, un valor entero tal como

Más detalles

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 edgardoadrianfrancom Tema 04: TAD Lista M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido TAD Lista Descripción del TAD Lista

Más detalles

INGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS

INGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS INGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) 1. INTRODUCCIÓN INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS Las computadoras fueron diseñadas o ideadas como una herramienta mediante la cual

Más detalles

Ejercicios de la clase std::vector

Ejercicios de la clase std::vector Ejercicios de la clase std::vector Escribir un programa que cree un vector de tamaño 100 y que contenga los 100 primeros números naturales y luego los imprima separados por espacios. 1. Primero escribir

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

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS Biblioteca estándar de plantillas (STL: Standard Templates Library) Prof. Dr. Nicolás Luis Fernández García Departamento de Informática y Análisis Numérico Escuela Politécnica

Más detalles

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

Estructura de datos y de la información Boletín de problemas - Tema 2 Estructura de datos y de la información Boletín de problemas - Tema 2 1. Definir un tipo de datos diassemana capaz de contener cualquier día de la semana y las operaciones diasiguiente, diaanterior y escribedia.

Más detalles

NIVEL 14: ESTRUCTURAS DE ACCESO DIRECTO

NIVEL 14: ESTRUCTURAS DE ACCESO DIRECTO NIVEL 14: ESTRUCTURAS DE ACCESO DIRECTO Tablas de Hashing 2 Tablas de hashing Motivación y definiciones Posibles estructuras de implementación Área primaria y área de desbordamiento Funciones de hashing

Más detalles

Iteradores y contenedores en C++

Iteradores y contenedores en C++ Iteradores y es en C++ Programación Orientada a Objeto Ing. Civil en Telecomunicaciones Se desea saber qué alumnos el curso Escribir función que identifique si un alumno tiene nota menor a 3.95 bool notarep(const

Más detalles

TEMA 2. ORGANIZACIONES DE FICHEROS Y ESTRUCTURAS DE ACCESO

TEMA 2. ORGANIZACIONES DE FICHEROS Y ESTRUCTURAS DE ACCESO TEMA 2. ORGANIZACIONES DE FICHEROS Y ESTRUCTURAS DE ACCESO 1. Introducción 2. Conceptos fundamentales de organizaciones de ficheros 3. Dispositivos de almacenamiento secundario 4. Ficheros desordenados

Más detalles

Guía resumida de referencia para exámenes

Guía resumida de referencia para exámenes Guía resumida de referencia para exámenes Tabla de referencia de operadores La siguiente tabla contiene algunos operadores que pueden ser sobrecargados (el símbolo # representa a la ubicación del operador

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

Programación C++ Tipos Parametrizados. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad Nacional

Programación C++ Tipos Parametrizados. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad Nacional Programación C++ Tipos Parametrizados Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad Nacional Tipos (clases) parametrizados Templates La noción de "templates" provee los llamados algunas

Más detalles

Fundamentos de Informática

Fundamentos de Informática Tema 8: 8: Estructuras datos. Fundamentos Informática 1º Ingeniería Industrial Escuela Superior Ingenieros Universidad Sevilla Ismael Alcalá Torrego José Ángel Acosta Rodríguez Fernando Dorado Navas Fabio

Más detalles

STL: Standard Template Library

STL: Standard Template Library STL: Standard Template Library Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Consideraciones de diseño Programas = Algoritmos + Datos (ecuación

Más detalles

Aspectos de los LP. Diseño de compiladores. Estático vs. Dinámico. Estático vs. Dinámico. Scope. Scope 24/03/2015

Aspectos de los LP. Diseño de compiladores. Estático vs. Dinámico. Estático vs. Dinámico. Scope. Scope 24/03/2015 Aspectos de los LP Diseño de compiladores Lenguajes de Programación Antes de comenzar con la construcción de un compilador, debemos comprender los conceptos basicos del lenguaje de programación con el

Más detalles

SISTEMAS OPERATIVOS SISTEMA DE ARCHIVOS

SISTEMAS OPERATIVOS SISTEMA DE ARCHIVOS UNIVERSIDAD INTERNACIONAL SAN ISIDRO LABARDOR Escuela de Ingeniería en Sistemas SISTEMAS OPERATIVOS SISTEMA DE ARCHIVOS Cuatrimestre II-2006 Recopilado por Ing. Fernely Artavia Fallas Visión del usuario

Más detalles

BUSQUEDA SECUENCIAL Y DIRECTA, MARCELA MARQUEZ REBECA NAVARRO FONSECA GUADALUPE RUIZ ANGULO JONATHAN ALEXIS TOPETE ESTRUCTURA Y OPERACIONES

BUSQUEDA SECUENCIAL Y DIRECTA, MARCELA MARQUEZ REBECA NAVARRO FONSECA GUADALUPE RUIZ ANGULO JONATHAN ALEXIS TOPETE ESTRUCTURA Y OPERACIONES BUSQUEDA SECUENCIAL Y DIRECTA, MARCELA MARQUEZ REBECA NAVARRO FONSECA GUADALUPE RUIZ ANGULO JONATHAN ALEXIS TOPETE ESTRUCTURA Y OPERACIONES BUSQUEDA Cuando se realizan operaciones de búsqueda es preciso

Más detalles

Teoría de Conjuntos. Conjunto es: colección de cosas, o una colección determinada de objetos.

Teoría de Conjuntos. Conjunto es: colección de cosas, o una colección determinada de objetos. Teoría de Conjuntos Apuntes Fernando Toscano tomados por A.Diz-Lois La teoría de conjuntos es una herramienta formal semántica que trata de dotar de significado, o lo que es lo mismo dotar de interpretación.

Más detalles

Teoría de Colas. Investigación Operativa II. Javier Alarcón Rafael Cáceres Jenny Martínez Pamela Quijada Grupo N 9

Teoría de Colas. Investigación Operativa II. Javier Alarcón Rafael Cáceres Jenny Martínez Pamela Quijada Grupo N 9 Teoría de Colas Investigación Operativa II Javier Alarcón Rafael Cáceres Jenny Martínez Pamela Quijada Grupo N 9 Profesor: Milton Ramírez 31 de Enero del 2012 ELEMENTOS BÁSICOS DE UN MODELO DE LÍNEA DE

Más detalles

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador PROBLEMAS TEMA 1: Estructuras de interconexión de un computador Problemas propuestos en examen PROBLEMA 1. Una CPU que emplea un tamaño de palabra de 16 bits tiene un repertorio de 16 instrucciones con

Más detalles

ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS Tipos de datos Expresiones Operadores y operandos Identificadores como localidades de memoria

ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS Tipos de datos Expresiones Operadores y operandos Identificadores como localidades de memoria ENIDADES PRIMIIVAS PARA EL DESARROLLO DE ALGORIMOS ipos de datos Expresiones Operadores y operandos Identificadores como localidades de memoria ipos De Datos odos los datos tienen un tipo asociado con

Más detalles

Estructuras de Datos Lineales y Arborescentes

Estructuras de Datos Lineales y Arborescentes 1/1 Estructuras de Datos Lineales y Arborescentes Josefina Sierra Santibáñez 25 de marzo de 2017 2/1 Estructuras de Datos Lineales y Arborescentes En este tema se utilizan estructuras de datos genéricas

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

Conjuntos disjuntos (Relaciones de equivalencia)

Conjuntos disjuntos (Relaciones de equivalencia) Conjuntos disjuntos (Relaciones de equivalencia) Una relación R se define en un conjunto C si para todo par de elementos (a,b),a,b C,a R b es verdadera o falsa. Una relación de equivalencia es una relación

Más detalles

UNIDAD I. ALGORITMOS

UNIDAD I. ALGORITMOS UNIDAD I. ALGORITMOS 1.1 Definición Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico. 1.2 Tipos Cualitativos: Son aquellos

Más detalles

Sistemas Electrónicos Digitales

Sistemas Electrónicos Digitales Sistemas Electrónicos Digitales Universidad de Alcalá Curso Académico 2014/2015 Curso 3º Cuatrimestre 1º Ejercicio 1 Se dispone de chips de EEPROM de 2Kx8. Realice la ampliación a 8Kx8 manteniendo una

Más detalles

Estructuras de datos. Colecciones en C#. Arreglos, Listas, Pilas, Colas y Árboles Métodos de búsqueda y ordenamiento

Estructuras de datos. Colecciones en C#. Arreglos, Listas, Pilas, Colas y Árboles Métodos de búsqueda y ordenamiento Estructuras de datos. Colecciones en C#. Arreglos, Listas, Pilas, Colas y Árboles Métodos de búsqueda y ordenamiento Temas Colecciones en C# Tipos de estructuras de datos Arreglos, listas, pilas y colas

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

Introducción a MATLAB

Introducción a MATLAB Introducción a MATLAB Sistemas Conexionistas - Curso 08/09 MATLAB es un sistema interactivo basado en matrices que se utiliza para cálculos científicos y de ingeniería. Puede resolver problemas numéricos

Más detalles

Expresión, Operador, Operando, Asignación, Prioridad

Expresión, Operador, Operando, Asignación, Prioridad 4. EXPRESIONES Y OPERADORES Conceptos: Resumen: Expresión, Operador, Operando, Asignación, Prioridad En este tema se presentan los siguientes elementos de la programación: las expresiones y los operadores.

Más detalles

MÉTODO SIMPLEX MÉTODO DE SOLUCIÓN GRÁFICO

MÉTODO SIMPLEX MÉTODO DE SOLUCIÓN GRÁFICO MÉTODO SIMPLEX MÉTODO DE SOLUCIÓN GRÁFICO Investigación de Operaciones 1 Introducción a la Programación Lineal Un modelo de programación lineal busca maximizar o minimizar una función lineal, sujeta a

Más detalles

CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS

CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS 1 TEMAS A VER Listas simples genéricas Pilas Colas 2 LISTA SIMPLE GENÉRICA Una lista simple genérica nos permite crear listas de diferentes objetos: enteros, char,

Más detalles

BASES DE DATOS. En Access hay una serie de herramientas u objetos que facilitan enormemente el tratamiento de la información:

BASES DE DATOS. En Access hay una serie de herramientas u objetos que facilitan enormemente el tratamiento de la información: BASES DE DATOS Concepto de archivo o fichero. Un Fichero es un conjunto de información almacenado en los periféricos de memoria masiva de datos y que es tratado como una unidad por el sistema operativo.

Más detalles

NORMA INFORMACIÓN Y DOCUMENTACIÓN. FORMATOS PARA EL INTERCAMBIO DE LA INFORMACIÓN. International Standard ISO 2709. 1 Campo de aplicación

NORMA INFORMACIÓN Y DOCUMENTACIÓN. FORMATOS PARA EL INTERCAMBIO DE LA INFORMACIÓN. International Standard ISO 2709. 1 Campo de aplicación NORMA En esta Sección se incluyen los proyectos de normas españolas relativas a Información y Documentación, durante el período en que están sometidas a la preceptiva información pública. En este número

Más detalles

Problemas de Recursividad

Problemas de Recursividad Problemas de Recursividad Problema 1. El factorial de un número entero n 0, denotado como n!, se define! como!!! i = 1 2 n cuando n > 0, y 0! = 1. Por ejemplo 6! = 1 2 3 4 5 6 = 720 Diseñad una método

Más detalles

Ejercicios del tema 5. Jerarquía de de Memoria

Ejercicios del tema 5. Jerarquía de de Memoria Ejercicios del tema 5. Jerarquía de de Memoria Ejercicio 1. Considere un computador de 32 bits con una caché de 64 KB asociativa por conjuntos de 4 vías y un tiempo de acceso de 4 ns. El tamaño de la línea

Más detalles

REGLAS DE CODD DEL MODELO RELACIONAL

REGLAS DE CODD DEL MODELO RELACIONAL REGLAS DE CODD - 1 - REGLAS DE CODD DEL MODELO RELACIONAL En la década de los 80 s comenzaron a aparecer numerosos Sistemas de Gestión de Bases de Datos que se anunciaban como relacionales. Sin embargo

Más detalles

3.3. PILAS 1. stack(const queue &original); /* Pre: cierto */ /* Post: Construye una pila que es una copia de "original". */

3.3. PILAS 1. stack(const queue &original); /* Pre: cierto */ /* Post: Construye una pila que es una copia de original. */ 3.3. PILAS 1 3.3. Pilas Una Pila es una estructura de datos lineal que sólo permite insertar, eliminar y consultar elementos en uno de sus extremos, que denominamos cima. Es, por tanto, una estructura

Más detalles

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º. Nombre-Apellidos:

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º. Nombre-Apellidos: Nombre-Apellidos: Nota: 1. Ejercicio (1 punto) Responder a las siguientes preguntas de tipo test, seleccionando sólo una de las respuestas. Se evaluarán sólo las respuestas contestadas con el siguiente

Más detalles

APÉNDICE D. INTRODUCCIÓN A SQL

APÉNDICE D. INTRODUCCIÓN A SQL APÉNDICE D. INTRODUCCIÓN A SQL D.1 INTRODUCCIÓN. CONCEPTOS PREVIOS D.1.1 Base de Datos Relacional Conjunto de Datos que el usuario percibe como una colección de tablas. La visión tabular de los datos es

Más detalles

Estructuras de datos: Conjuntos disjuntos

Estructuras de datos: Conjuntos disjuntos Estructuras de datos: Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge sjorge@udc.es Referencias bibliográficas G. Brassard y T. Bratley. Estructura de datos. En Fundamentos

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

Cursos Propedéuticos 2015

Cursos Propedéuticos 2015 Listas Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores http://ccc.inaoep.mx/~rcumplido/ Contenido de la sección Listas Principales operaciones Listas secuenciales vs Listas ligadas

Más detalles

CURSO DE LENGUAJE C. 4.1 Conceptos básicos de funciones 4.2 Funciones que regresan valores no enteros 4.3 Variables externas 4.4 Reglas de alcance

CURSO DE LENGUAJE C. 4.1 Conceptos básicos de funciones 4.2 Funciones que regresan valores no enteros 4.3 Variables externas 4.4 Reglas de alcance Capítulo 1. Introducción general 1.1 Comencemos 1.2 Variables y expresiones aritméticas 1.3 La proposición FOR 1.4 Constantes simbólicas 1.5 Entrada y salida de caracteres 1.6 Arreglos 1.7 Funciones 1.8

Más detalles

Tema 2. Funciones Lógicas. Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas.

Tema 2. Funciones Lógicas. Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas. Tema 2. Funciones Lógicas Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas. Álgebra de conmutación Algebra de Conmutación: Postulados y Teoremas. Representación

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

Cuál es la frecuencia de acceso de una memoria de acceso aleatorio con un tiempo de acceso de 80 nseg. y un tiempo de ciclo de 100 nseg.?.

Cuál es la frecuencia de acceso de una memoria de acceso aleatorio con un tiempo de acceso de 80 nseg. y un tiempo de ciclo de 100 nseg.?. Cuál es la frecuencia de acceso de una memoria de acceso aleatorio con un tiempo de acceso de nseg. y un tiempo de ciclo de nseg.?. f A Hz t 9 C seg Petición de lectura t A Información disponible t C Información

Más detalles

Estructuras de Datos Lineales y Arborescentes

Estructuras de Datos Lineales y Arborescentes 1/46 Estructuras de Datos Lineales y Arborescentes Josefina Sierra Santibáñez 14 de abril de 2018 2/46 Estructuras de Datos Lineales y Arborescentes En este tema se utilizan estructuras de datos genéricas

Más detalles

STL: Standard Template Library

STL: Standard Template Library SEMINARIO C++ STL: Standard Template Library v. 20100915 Programación orientada a objetos Curso 10-11 ÍNDICE 1. Objetivo 2. El contenedor vector 3. Iteradores 4. Operaciones 5. Operadores 2 OBJETIVO La

Más detalles

Estructuras dinámicas lineales (i)

Estructuras dinámicas lineales (i) Estructuras dinámicas lineales (i) Introducción En la lección anterior se explicaron los conceptos de dinámicas y puntero; vimos la forma en que se implementan dichas tanto en la notación algorítmica como

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

4.1 Dispositivos y manejadores de dispositivos: device drivers

4.1 Dispositivos y manejadores de dispositivos: device drivers Unidad IV: Administración de entrada/salida 4.1 Dispositivos y manejadores de dispositivos: device drivers Se pueden clasificar en dos grandes categorías: 1. Dispositivos de bloque 2. Dispositivos de carácter

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión X Colecciones... 6 Interfaz List... 15 ArrayList... 17 Recorrido Colecciones... 22 Iteradores en

Más detalles

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz

Más detalles

Estructuras de Datos Lineales y Arborescentes

Estructuras de Datos Lineales y Arborescentes 1/46 Estructuras de Datos Lineales y Arborescentes Josefina Sierra Santibáñez 14 de noviembre de 2017 2/46 Estructuras de Datos Lineales y Arborescentes En este tema se utilizan estructuras de datos genéricas

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

La sintaxis básica para definir una clase es la que a continuación se muestra:

La sintaxis básica para definir una clase es la que a continuación se muestra: DEFINICIÓN DE CLASES Y OBJETOS EN C# Sintaxis de definición de clases La sintaxis básica para definir una clase es la que a continuación se muestra: class nombreclase miembros De este modo se definiría

Más detalles

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño variable y uso de ciclos en otros contextos

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño variable y uso de ciclos en otros contextos Algoritmos y Programación Orientada a Objetos I y uso de ciclos en otros contextos Agenda Motivación Uso de ciclos en otros contextos Agenda Motivación Uso de ciclos en otros contextos Motivación En muchos

Más detalles

Está basado en el álgebra y en el cálculo relacional.

Está basado en el álgebra y en el cálculo relacional. SQL DML. Introducción SQL. QUÉ ES. SQL (Structured Query Language, Lenguaje Estructurado de Consultas): Lenguaje que permite expresar operaciones diversas (aritméticas, combinatorias, lógicas, selección

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática

Algoritmos y Estructuras de Datos Ingeniería en Informática 2.1.Sean A= {1, 2, 3, 7, 8} y B= {3, 4, 5, 7, 9}, mostrar la ejecución y los resultados de las siguientes operaciones, suponiendo una representación con arrays de booleanos y con listas de elementos (ordenadas

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

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

CAPITULO II. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

CAPITULO II. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS CAPIULO II. ENIDADES PRIMIIVAS PARA EL DESARROLLO DE ALGORIMOS 2.1 ipos de datos 2.2 Expresiones 2.3 Operadores y operandos 2.4 Identificadores como localidades de memoria OBJEIVO EDUCACIONAL: El alumno:

Más detalles

Estructuras de Datos Clase 4 Pilas y colas

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

Más detalles

INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00921C)

INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00921C) APRENDERAPROGRAMAR.COM INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00921C) Sección: Cursos Categoría: Lenguaje de programación Java nivel

Más detalles

UNIVERSIDAD DE PAMPLONA ADMINISTRACION DE BASES DE DATOS GRUPO BR MENTOR: ESP. ALEXIS OLVANY TORRES CH. PRIMER SEMESTRE 2011

UNIVERSIDAD DE PAMPLONA ADMINISTRACION DE BASES DE DATOS GRUPO BR MENTOR: ESP. ALEXIS OLVANY TORRES CH. PRIMER SEMESTRE 2011 BASES DE DATOS RELACIONALES. UNIDAD 1 - INTRODUCCIÓN A LAS BASES DE DATOS RELACIONALES. Introducción. Access es una herramienta de administración de bases de datos, diseñada por Microsoft, para trabajar

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

Definición de problemas de programación lineal. Método gráfico. Método del SIMPLEX. Método de las dos fases. Análisis de sensibilidad y problema dual

Definición de problemas de programación lineal. Método gráfico. Método del SIMPLEX. Método de las dos fases. Análisis de sensibilidad y problema dual 7. Programación lineal y SIMPLEX Definición de problemas de programación lineal. Método gráfico. Método del SIMPLEX. Método de las dos fases. Análisis de sensibilidad y problema dual Programación Lineal

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 1 FUNDAMENTOS DE PROGRAMACIÓN

TEMA 1 FUNDAMENTOS DE PROGRAMACIÓN TEMA 1 FUNDAMENTOS DE PROGRAMACIÓN 1.1 Introducción 1.2 Evolución de los lenguajes de programación 1.3 Paradigmas de programación 1.4 Métodos de implementación 1.5 Lecturas recomendadas 1.6 Ejercicios

Más detalles

MANUAL BÁSICO DEL LENGUAJE SQL

MANUAL BÁSICO DEL LENGUAJE SQL MANUAL BÁSICO DEL LENGUAJE SQL INTRODUCCIÓN A continuación se presentan lo que son comandos DLL y DML, las clausulas, lo operadores (lógicos y de comparación), funciones de agregado, consultas, tipos de

Más detalles

Sistemas Operativos. Clase 2: Administración de procesos.

Sistemas Operativos. Clase 2: Administración de procesos. Sistemas Operativos Clase 2: Administración de procesos. Administración de procesos Un concepto muy importante en el ambiente de diseño de todo sistema operativo, es el de proceso o tarea. De manera general,

Más detalles

IDENTIDAD EN PRECISIÓN VARIABLE

IDENTIDAD EN PRECISIÓN VARIABLE Contenido INTRODUCCIÓN 3 Motivación 5 Objetivos 9 Conocimiento actual y problemas abiertos 13 Formulación del problema y propuesta de solución 25 IDENTIDAD EN PRECISIÓN VARIABLE 35 Representación de los

Más detalles

Modulo 11. Clases y Objetos en Java

Modulo 11. Clases y Objetos en Java El siguiente texto es una traducción no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningún momento reemplazar los contenidos generados por este grupo.

Más detalles

Tema 2. Tipos y Estructuras Básicas

Tema 2. Tipos y Estructuras Básicas Tema 2. Tipos y Estructuras Básicas 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

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión IX Colecciones... 6 Interfaz List... 15 ArrayList... 18 tostring( )... 23 Recorrido Colecciones...

Más detalles

Estructuras de Datos y Algoritmos Tema 3: Arrays y listas enlazadas

Estructuras de Datos y Algoritmos Tema 3: Arrays y listas enlazadas Estructuras de Datos y Algoritmos Tema 3: Arrays y listas enlazadas Departamento de Informática Universidad de Valladolid Curso 2011-12 Grado en Ingeniería Informática Grado en Ingeniería Informática de

Más detalles

Ventajas de utilizar bases de datos Normalizar los datos: Evitar redundancia de datos: Evitar inconsistencias de datos:

Ventajas de utilizar bases de datos Normalizar los datos: Evitar redundancia de datos: Evitar inconsistencias de datos: Ventajas de utilizar bases de datos Vamos a describir brevemente algunas de las principales ventajas de utilizar base de datos para la persistencia de los datos: Normalizar los datos de la base de datos.

Más detalles

Programación y matemática

Programación y matemática Programación y matemática Los objetos matemáticos se describen usando un lenguaje al que llamamos lenguaje matemático. Como este lenguaje tiene pautas claras que indican cuáles descripciones tienen sentido

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

Programación Orientada a Objetos Métodos Guía de Ejercicios v9.7

Programación Orientada a Objetos Métodos Guía de Ejercicios v9.7 Programación Orientada a Objetos Métodos Guía de Ejercicios v9.7 1, Escriba un método llamado puntoscalidad que reciba como entrada el promedio de un estudiante y devuelva 4 si el promedio se encuentra

Más detalles