0% encontró este documento útil (0 votos)
38 vistas14 páginas

CFDP Chapter 5

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
38 vistas14 páginas

CFDP Chapter 5

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Unidad 3 / Escenario 5

Lectura Fundamental

Contenedores estándar de datos

Contenido

1 Listas y Arreglos 1

2 Pilas 3

3 Colas 4

4 Colas de prioridad 5

5 Problemas propuestos 6

Palabras Claves: Programación, orientado a objetos, java, List, ArrayList, LinkedList, Stack, Queue.
En el escenario anterior usted pudo ver las maneras primitivas en los lenguajes de programación de almacenar datos
del mismo tipo: arreglos de una o más dimensiones. También pudo conocer y practicar el diseño e implementación de
métodos en java. En este escenario usted conocerá los principales contenedores estándar de datos lineales. Aunque
todo lo que se puede hacer con estos contenedores lineales se puede hacer con arreglos de tipo nativo; de tamaño
fijo como los que pudo ver en la unidad pasada, estos contenedores ofrecen muy buenas prestaciones respecto a su
complejidad computacional y facilidades de uso.

1. Listas y Arreglos

Los primeros contenedores y tal vez los más usados, son los contenedores tipo arreglo o lista. Sus comportamientos
(métodos estándar disponibles) son generalmente los mismos en todos los lenguajes de programación de propósito
general. A estos contenedores se accede de la misma manera que se accede a los arreglos de tamaño fijo, con un
ı́ndice. Tienen la ventaja de que su tamaño es dinámico, inicialmente al crearlos (instanciarlos) están vacı́os, y se
puede ir agregando elementos al final, al inicio, e incluso en posiciones aleatorias intermedias.

En java y en muchos lenguajes de programación hay generalmente varias implementaciones de listas lineales de
acceso aleatorio. En el caso de Java se tienen los ArrayList Oracle, 1999a, los LinkedList Oracle, 1999b y los
Vector Oracle, 1999e. Los ArrayList funcionan como una lista, aunque su implementación interna es mediante
arreglos de tamaño fijo. Los LinkedList tienen una implementación interna mediante listas enlazadas. Finalmente los
Vector, son listas sincronizadas, las cuales están protegidas para programas de múltiples hilos. La discusión detallada
de las diferencias en cuanto a complejidades Community, 2018 de las operaciones disponibles y limitaciones de
cada una de estas implementaciones se escapa al alcance de este módulo, pero cuya información puede llegar a ser
importante en la selección de cual de estas tres se debe hacer..

En el programa mostrado en el código 1 se pueden ver los principales métodos que tienen los programadores a
su disposición en la clase ArrayList. Usted debe, como en todos los escenarios probar el programa con diferentes
entradas. El programa lee primero un número entero positivo n, seguido de n números enteros. Seguido a esto
prueba varios métodos útiles de la clase ArrayList como lo son: Agregar un elemento, buscar un elemento y recuperar
el primer ı́ndice en el que está, recuperar el último ı́ndice en el que está, eliminar un ı́ndice, obtener el elemento en
un ı́ndice, ordenar el contenido del ArrayList de manera ascendente usando el método sort de la clase Collections.

Todas las clases de contenedores estándar que usted estudiará en este escenario y en el siguiente son tipo template.
Esto quiere decir que se pueden usar para almacenar elementos de cualquier tipo de datos, en particular el ejemplo
del código 1 y los demás ejemplos en este escenario muestran su uso con enteros, pero se pueden usar con otros
tipos nativos vı́a sus clases envolventes (por ejemplo Double para los doubles), ası́ como para cualquier tipo de
dato estándar o definido por el programador. También se pueden usar incluso para modelar arreglos de varias
dimensiones instanciando una lista de listas. Ejemplo: ArrayList¡ArrayList¡Integer¿ ¿ matrix. Usando polimorfismo
y herencia, se pueden usar estos contenedores para almacenar elementos de diferente tipo. Este tipo de usos se
escapan también a este módulo, pero se espera que se cubran en el módulo de paradigmas de programación.

Otro ejercicio recomendado para hacer con el código 1, es modificarlo para en lugar de usar los ArrayList, se usen
los LinkedList y también los Vector. El cambio es relativamente fácil puesto que los métodos de las tres clases
son casi los mismos. Queda como ejercicio al lector, investigar a profundidad las diferencias entre los tres tipos de
contenedores lineales mencionados en esta sección.

POLITÉCNICO GRANCOLOMBIANO 1
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Main {
public static void main( String args[] ){
Scanner sn = new Scanner( System.in );
ArrayList<Integer> list = new ArrayList<Integer>();
System.out.print("How many initial integers? ");
int n = sn.nextInt();
for( int i = 0; i < n; ++ i ){
System.out.print("Type an integer: ");
int tmp = sn.nextInt();
list.add(tmp);
}

System.out.println("List printed as String: ");


System.out.println(list);

System.out.println("List traversed by a for-each loop: ");


for( int k: list )
System.out.print(k+" ");
System.out.println();

System.out.println("List traversed by a for loop: ");


for( int i = 0; i < list.size(); ++ i )
System.out.print(list.get(i)+" ");
System.out.println();

System.out.print("Type an integer to search: ");


int q = sn.nextInt();
boolean isIn = list.contains(q);
int firstIndex = list.indexOf(q);
int lastIndex = list.lastIndexOf(q);
System.out.println(q +(isIn?" is":" is not")+" on the list: "+list );
System.out.println(q +" is first on index "+firstIndex+" on the list: "+list );
System.out.println(q +" is last on index "+lastIndex+" on the list: "+list );

System.out.print("Type an index to remove: ");


int r = sn.nextInt();
list.remove(r);
System.out.println("List after removing "+r+": "+list );

Collections.sort(list);
System.out.println("Sorted list: "+list);
}
}

Código 1: Ejemplo de uso de listas.

POLITÉCNICO GRANCOLOMBIANO 2
2. Pilas

Las pilas como concepto general, son arreglos de elementos que cumplen el principio LIFO, que en inglés quiere
decir Last Input-First Output, que traducido es básicamente Último en entrar, primero en salir. Se puede
entender como un contenedor que funciona similar a una pila de libros (o cualquier elemento que se pueda apilar).
En una pila de libros se pueden agregar libros encima y en cualquier momento si se desea retirar un libro, el mas
accesible será el último en ser agregado. Este tipo de comportamiento es de uso común en programación en gran
variedad de aplicaciones y algoritmos. Es por esto que prácticamente todos los lenguajes de alto nivel de propósito
general, tienen al menos una implementación de una estructura de datos que tiene este tipo de comportamientos
implementados de una manera eficiente.

En el código 2 se pueden ver los principales métodos (comportamientos) de la clase Stack del paquete Collections
de Java. Básicamente con una pila usted puede agregar elementos al tope (push), recuperar sin eliminar el último
elemento (peek) y recuperar eliminando el último elemento de la pila (pop). Usted debe ejecutar y seguir paso
a paso la ejecución del programa en el código 2 para apropiarse del funcionamiento de la clase y sus principales
métodos. Se recomienda también revisar la documentación para más métodos de esta clase Oracle, 1999d.
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main( String args[] ){
Scanner sn = new Scanner( System.in );
Stack<Integer> stack = new Stack<Integer>();
stack.push(4);
stack.push(13);
stack.push(9);
System.out.println("Original Stack: "+stack);
System.out.println("stack.peek(): "+stack.peek());
System.out.println("Size after peek(): "+stack.size());
System.out.println("Stack after peek(): "+stack);

System.out.println("stack.pop() "+stack.pop());
System.out.println("Size after pop(): "+stack.size());
System.out.println("Stack after pop(): "+stack);
}
}

Código 2: Ejemplo de uso de pilas.

POLITÉCNICO GRANCOLOMBIANO 3
3. Colas

De manera similar a las pilas. Las colas son de uso común en implementaciones de diferentes algoritmos. Las colas
deben su nombre al comportamiento FIFO, que en inglés significa First-Input First Output; Primero en entrar,
primero en salir. Es básicamente el comportamiento de por ejemplo los clientes en un supermercado o automóviles
en un peaje; en donde el primero que llega, es el primero que sale, es decir, en donde se atienden en orden de
llegada. Para este comportamiento los lenguajes de programación de alto nivel de propósito general tienen al menos
una implementación eficiente. En el caso de Java es la interfaz Queue y Deque.

A diferencia de las pilas, que son una clase, las Colas al ser una interfaz, no se pueden instanciar; es decir, no se
puede hacer new Queue(). Por ello una variable declarada de tipo Queue debe ser instanciada en una clase concreta
de varias posibles, como por ejemplo la clase LinkedList. La elección de la clase concreta con que se instancia una
variable declarada de tipo Queue define tanto las operaciones disponibles, como las complejidades computacionales
de ellas. Para más detalle en las opciones de clases concretas para instanciar una variable tipo Queue, revisar la
sección All Known Implementing Classes en la documentación de java Oracle, 1999c. En el código 3 se pueden ver
en uso algunos de los principales métodos disponibles para la interfaz Queue instanciada como una LinkedList.
Usted debe como siempre ejecutar y hacer seguimiento paso a paso del código. Se recomienda también probar la
instanciación con clases diferentes como ArrayDeque y ver que otros comportamientos se tienen a disposición.
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main {
public static void main( String args[] ){
Scanner sn = new Scanner( System.in );
Queue<Integer> queue = new LinkedList<Integer>();
queue.add(4);
queue.add(13);
queue.add(9);
System.out.println("Original Queue: "+queue);
System.out.println("Queue.peek: "+queue.peek());
System.out.println("Size after peek(): "+queue.size());
System.out.println("Queue after peek(): "+queue);

System.out.println("queue.poll(): "+queue.poll());
System.out.println("Size after pop(): "+queue.size());
System.out.println("Queue after pop(): "+queue);
}
}

Código 3: Ejemplo de uso de colas.

POLITÉCNICO GRANCOLOMBIANO 4
4. Colas de prioridad

En muchas ocasiones en implementaciones de algoritmos, es necesario entender o procesar tareas en una manera
diferente a las aproximaciones tipo FIFO y LIFO vistas en secciones anteriores y que se resuelven fácilmente con
Colas y Pilas respectivamente. Una variación de las colas tradicionales tipo FIFO, son las colas de prioridad. En
una estructura de datos tipo cola de prioridad se eliminan (atienden) elementos según una prioridad dada.

En java la clase concreta PriorityQueue ofrece la posibilidad de comportamiento en el cual los datos en la estructura
de datos se eliminan de acuerdo al orden establecido de los elmentos En el código 4 se pueden ver en funcionamiento
los principales métodos de la clase PriorityQueue. En este ejemplo se puede ver que de manera estándar y por
defecto, se le da prioridad a los números menores a la hora de ser atendidos; es decir, cuando se invocan los métodos
peek o poll. Se recomienda hacer un seguimiento paso a paso del ejemplo mostrado.
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Scanner;
public class Main {
public static void main( String args[] ){
Scanner sn = new Scanner( System.in );
Queue<Integer> queue = new PriorityQueue<Integer>();
queue.add(4);
queue.add(13);
queue.add(9);
queue.add(1);
queue.add(-2);
queue.add(90);
System.out.println("Original Queue: "+queue);
System.out.println("Queue.peek: "+queue.peek());
System.out.println("Size after peek(): "+queue.size());
System.out.println("Queue after peek(): "+queue);

System.out.println("queue.poll(): "+queue.poll());
System.out.println("Size after pop(): "+queue.size());
System.out.println("Queue after pop(): "+queue);
}
}

Código 4: Ejemplo de uso de colas de prioridad.

POLITÉCNICO GRANCOLOMBIANO 5
5. Problemas propuestos

En casi todos programas de esta sección constan de un enunciado en el que se solicita el diseño e implementación
de un programa en java que tome como entrada ciertos datos leı́dos desde la entrada estándar de java y produzca
como única salida los datos solicitados, que pueden ser cálculos o transformaciones hechas con los datos de entrada.
En todos los problemas propuestos se debe asumir que las entradas cumplirán con lo estipulado en la sección
Descripción de entrada de cada problema. Dicho esto se debe entonces diseñar e implementar un programa que
cumpla con lo estipulado en la sección Descripción de salida, y que sea únicamente lo solicitado allı́, nada más.

Teniendo en cuenta que en este escenario contenedores lineales, se espera que en todas las soluciones se usen
de alguna manera. Como requisito adicional: toda la lectura de datos (uso de Scanner ) y toda impresión de datos a
la salida estándar (uso de System.out) debe hacerse en el método main; es decir, en los demás métodos no puede
haber ni lectura ni impresión de datos.

Aunque todos los ejercicios de este escenario se pueden resolver usando arreglos de tamaño fijo como se hizo en el
escenario anterior y también usando colecciones estándar no lineales del lenguaje como TreeSet y TreeMap. Y es
posible que el estudiante conozca esta estructura, parte del ejercicio aquı́ es intentar logra resolver el problema
únicamente con estructuras de datos lineales. Posteriormente se propondrán estos ejercicios para ser resueltos con
contenedores estándar no lineales de java.

POLITÉCNICO GRANCOLOMBIANO 6
1. Hacer un seguimiento paso a paso para el programa en el código 1 con la entrada: 5 2 2 2 3 3 3 3. Verificar su
trabajo ejecutando el programa e ingresando los datos mencionados.
2. Pilas de libros. Diseñe e implemente un programa en java que simule el comportamiento de poner libros en
dos pilas y moverlos entre ellas.
• Descripción de entrada: un número entero n entre 0 y 10000 seguido de n lı́neas en las cuales cada una
es una operación del tipo: Agregar a la pila A, Agregar a la pila B, Remover de pila A, Remover de pila
B. Pasar de pila a a la pila B, Pasar de la pila B a la pila A. Los elementos a agregar/remover/cambiar
de pila serán representados por cadenas sin espacios ni tabulaciones. las instrucciones pueden ser una de
las siguientes :
• pop A: Remover elemento de pila A.
• pop B: Remover elemento de pila B.
• add XXX to A: Agregar elemento a pila A.
• add XXX to B: Agregar elemento a pila B.
• pop from A push in B: Eliminar elemento de pila A y agregarlo a pila B. En caso de que A esté
vacı́a, no hacer nada.
• pop from B push in A: Eliminar elemento de pila B y agregarlo a pila A. En caso de que B esté
vacı́a, no hacer nada.
• Descripción de Salida: Dos lı́neas, una con el contenido de la pila A, y otra con el contenido de la pila B,
separado por espacios
• Ejemplo de entrada:
add book1 to A add book2 to A add book3 to A add book4 to B pop from A push in B pop from A
push in B pop B
• Ejemplo de salida:
book1 book3 book4
3. Contador de dı́gitos. Diseñe e implemente un programa en java que responda la siguiente pregunta: Si quisiera
escribir con lápiz y papel los números enteros desde el 0 hasta el n (n es un argumento que lee el programa).
¿Cuántas veces escribirı́a cada dı́gito del 0 al 9?
• Descripción de entrada: un número entero entre 0 y 10000.
• Descripción de Salida: 10 lı́neas, una para cada dı́gito del 0 al 9 indicando cuantas veces se escribirı́a el
dı́gito al escribir los números del 0 al n.
• Ejemplo de entrada:
12
• Ejemplo de salida:
El digito 0 se escribiria 2 veces.
El digito 1 se escribiria 5 veces.
El digito 2 se escribiria 2 veces.
El digito 3 se escribiria 1 veces.
El digito 4 se escribiria 1 veces.
El digito 5 se escribiria 1 veces.
El digito 6 se escribiria 1 veces.
El digito 7 se escribiria 1 veces.
El digito 8 se escribiria 1 veces.
El digito 9 se escribiria 1 veces.

4. Centro de masas. Dados un conjunto de puntos con masa en el plano. Hacer un programa que lea estos da-
tos y calcule y muestre el centro de masas de estos puntos. El centro de masas está dado por la fórmula siguiente:

Pn
i=1 mi ∗xi
xcm = P n
i=1 mi

POLITÉCNICO GRANCOLOMBIANO 7
Pn
i=1 mi ∗yi
ycm = P n
i=1 mi

• Descripción de entrada: Un número entero n seguido de n triplas de números. Cada tripla es un punto
con su masa, primero la coordenada x, luego la coordenada y y luego la masa m para ese punto.
• Descripción de Salida: Dos números, la coordenada x del centro de masa y la coordenada y del centro
de masa de los puntos leı́dos.
• Ejemplo de entrada:
5
10 10 2
10 20 4
10 30 8
10 40 1
10 50 16

• Ejemplo de salida:
10 38.065

5. Espectro. Diseñar e implementar un programa que tome como entrada 5 números enteros positivos y produzca
como salida un patrón como se muestra en el ejemplo.
• Descripción de entrada: Un número n entero positivo seguido de n números enteros no negativos. Todos
entre 0 y 100.
• Descripción de Salida: El patrón según se muestra en el ejemplo. El primer número leı́do n serán la
cantidad de columnas de la matriz a imprimir. Los siguientes n números serán la cantidad de numerales
que salen en cada columna. Ası́ en el ejemplo en la primera columna hay 3 numerales, en la segunda
un numeral, en la tercera 8 numerales(el mayor valor da la cantidad de filas), la penúltima columna
muestra 4 numerales y la última columna muestra 2 numerales.
• Ejemplo de entrada:
5
31842
• Ejemplo de salida:

..#..
..#..
..#..
..#..
..#..
..##.
#.##.
#.###
#####
Código 5: Patrón a imprimir en el problema.

6. Palı́ndromas: Diseñe un programa que tome lea como entrada una cadena de texto e imprima y responda la
pregunta ¿cuantas subcadenas son palindromas de longitud al menos 2 tiene la cadena leı́da. El programa
debe mostrar todas las subcadenas palindromas solicitadas en orden lexicográfico y la cantidad de ellas.
• Descripción de entrada: Una cadena de texto
• Descripción de Salida: Las cadenas de texto según lo descrito en el enunciado, de a una por lı́nea y el

POLITÉCNICO GRANCOLOMBIANO 8
número indicando la cantidad de cadenas mostradas en una lı́nea separada.
• Ejemplo de entrada:
anitalavalatinaanaeslamejor
• Ejemplo de salida:
aa
ala
ala
alavala
ana
anitalavalatina
ava
italavalati
laval
naan
nitalavalatin
talavalat
12

7. Diseñar e implementar un programa que tome como entrada un número entero n, seguido a esto lea n números
enteros, el programa debe mostrar los números leı́dos sin repeticiones y ordenados ascendentemente.
• Descripción de entrada: Un número n, entero, seguido de n números enteros todos mayores o iguales que
0, y menores o iguales a 1000.
• Descripción de Salida: Los elementos leı́dos, sin repeticiones y ordenados ascendentemente.
• Ejemplo de entrada:
14
10 29 5 6 29 10 10 10 6 6 6 5 5 5
• Ejemplo de salida:
5 6 10 29

8. Diseñar e implementar un programa que tome como entrada un número entero n, seguido a esto lea n números
enteros y diga cuántas veces está cada entero leı́do en la lista de enteros leı́dos. Adicional a esto debe mostrar
los números ordenados por frecuencia, es decir, debe primero mostrar el que más veces aparece en la entrada,
después el segundo que más aparece, después el tercero y ası́ sucesivamente.
• Descripción de entrada: Un número n, entero, seguido de n números enteros todos mayores o iguales que
0, y menores o iguales a 1000.
• Descripción de Salida: La cantidad e veces que aparece cada número. Los números deben aparecer en
orden descendente respecto a la cantidad de veces que aparece.
• Ejemplo de entrada:
13
10 29 5 6 29 10 2 2 2 10 2 10 2
• Ejemplo de salida:
El 2 aparece 5 veces.
El 10 aparece 4 veces.
El 29 aparece 2 veces.
El 6 aparece una vez.
El 5 aparece una vez.

9. Frecuencias: Diseñar e implementar un programa que tome como entrada un número entero n, seguido a esto
lea n números enteros, después debe mostrar una tabla de frecuencias de los números leı́dos usando asteriscos

POLITÉCNICO GRANCOLOMBIANO 9
∗. Deben estar ordenados en la salida respecto a la frecuencia, primero los que más veces aparecen en la
entrada.
• Descripción de entrada: Un número n, entero, seguido de n números enteros todos mayores o iguales que
0, y menores o iguales a 1000.
• Descripción de Salida: La tabla de asteriscos según el ejemplo.
• Ejemplo de entrada:
13
10 29 5 6 29 10 2 2 2 10 2 10 2
• Ejemplo de salida:
2 *****
10 ****
29 **
6*
5*

10. Frecuencias: Diseñar e implementar un programa que tome como entrada un número entero n, seguido a
esto lea n números enteros, después debe mostrar una tabla de frecuencias de los números leı́dos usando
asteriscos ∗. Deben estar ordenados en la salida respecto a la frecuencia. La cantidad de asterı́scos mostrados
por número debe ser la mı́nima posible siempre y cuando se conserve la proporción respecto de la cantidad de
números leı́da. Por ejemplo, en la entrada de ejemplo mostrada, aparecen 4 asteriscos para el número 10,
aunque el número 10 aparece 12 veces. Esto porque la cantidad de asterı́scos por número es proporcional a la
cantidad de veces que cada número se leyó en la entrada. En el ejemplo mostrado la cantidad de números
es 3 multiplicado por la cantidad de asteriscos: 12 veces el número 10, 6 veces el número 29, tres veces el
número 6 y 3 veces el número 5 (12+6+3+3=24).
• Descripción de entrada: Un número n, entero, seguido de n números enteros todos mayores o iguales que
0, y menores o iguales a 1000.
• Descripción de Salida: La tabla de asteriscos según el ejemplo.
• Ejemplo de entrada:
24
10 29 5 6 29 10 10 10 10 29 5 6 29 10 10 10 10 29 5 6 29 10 10 10
• Ejemplo de salida:
10 ****
29 **
6*
5*

11. Se desea hacer un programa que tome como entrada los datos de estudiantes (nombres completos, números
de documento) y una serie de notas y produzca una lista Estudiante-Promedio ordenada de mejor a peor
promedio de notas descendentemente y muestra el resultado a manera de tabla con tres columnas: Nombre,
cédula y promedio. El formato del archivo de entrada es el siguiente:
• En la primera lı́nea del archivo de entrada tendrá un número entero positivo n, esta será la cantidad de
lı́neas que siguen, cada lı́nea representará la información de un estudiante. Cada lı́nea tendrá el siguiente
formato: nombre completo - número de documento - serie de notas entre 0 y 5 separadas por espacios.
• Descripción de Salida:La lista según lo solicitado.
• Ejemplo de entrada:
4 Rafael Alberto Velasquez-889993893-4 3 4 4.5 4 2 1
Jose Figueroa-2334234-4 3 1 3 5
Diego Castilla-232234-3 4 1 2 3 3 2 1 2.3 2.3
Alberto Baron-234213-3 3 1

POLITÉCNICO GRANCOLOMBIANO 10
• Ejemplo de salida:
Alberto Baron 234213 4.33333
Rafael Alberto Velasquez 889993893 3.21429
Jose Figueroa 2334234 3.2
Diego Castilla 232234 2.36

12. Número de Fibonacci. Para este programa se recomienda implementar la función recursiva. Optimizar usando
memoization como se mostró en este escenario.:

0
 si n = 0
f (n) = 1 si n = 1

f (n − 1) + f (n − 2) en otro caso.

• Descripción de entrada: Un número entero positivo entre 0 y 90.


• Descripción de Salida: Un entero positivo el enésimo número de fibonacci Foundation, 2018.
• Ejemplo de entrada:
0
• Ejemplo de salida:
1
• Ejemplo de entrada 2:
1
• Ejemplo de salida 2:
1
• Ejemplo de entrada 3:
2
• Ejemplo de salida 3:
2
• Ejemplo de entrada 4:
40
• Ejemplo de salida 4:
102334155

POLITÉCNICO GRANCOLOMBIANO 11
Referencias

Community, S. O. (2018). Big-O summary for java collection framework. Recuperado el 1 de febrero de 2018,
desde https : / / stackoverflow . com / questions / 559839 / big - o - summary - for - java - collections - framework -
implementations
Foundation, O. (2018). The On-Line Encyclopedia of Integer Sequences: Fibonacci Numbers. Recuperado el 30 de
abril de 2018, desde https://oeis.org/A000045
Oracle, C. (1999a). ArrayList in java Documentation. Recuperado el 30 de abril de 2018, desde https://docs.oracle.
com/javase/7/docs/api/java/util/ArrayList.html
Oracle, C. (1999b). LinkedList in java Documentation. Recuperado el 30 de abril de 2018, desde https://docs.
oracle.com/javase/7/docs/api/java/util/LinkedList.html
Oracle, C. (1999c). Queue in java Documentation. Recuperado el 30 de abril de 2018, desde https://docs.oracle.
com/javase/7/docs/api/java/util/Queue.html
Oracle, C. (1999d). Stack in java Documentation. Recuperado el 30 de abril de 2018, desde https://docs.oracle.
com/javase/7/docs/api/java/util/Stack.html
Oracle, C. (1999e). Vector in java Documentation. Recuperado el 30 de abril de 2018, desde https://docs.oracle.
com/javase/7/docs/api/java/util/Vector.html

POLITÉCNICO GRANCOLOMBIANO 12
INFORMACIÓN TÉCNICA

Módulo: Conceptos Fundamentales de Programación


Unidad 3: Contenedores estándar de datos
Escenario 5: Principales Contenedores estándar de datos

Autor: Rafael Niquefa

Asesor Pedagógico: Angie Laiton


Diseñador Gráfico: Por definir
Asistente: Por definir

Este material pertenece al Politécnico Grancolombiano.


Por ende, es de uso exclusivo de las Instituciones
adscritas a la Red Ilumno. Prohibida su reproducción
total o parcial.

POLITÉCNICO GRANCOLOMBIANO 13

También podría gustarte