Beruflich Dokumente
Kultur Dokumente
0
1
2
.
.
.
.
.
.
.
29
El valor contenido entre [ ] se le denomina indice o
subindice del arreglo. El valor puede ser una
constante de tipo entero como pruduccion[0]
Tambien puede ser una variable de tipo entero como
produccion[i]
O bien puede ser una expresin algebraica como
Produccin [i+3], produccin[(i * 4)- j ]
Arreglos
Algoritmo para leer datos de un arreglo unidimensional
Declarar Variables
Produccion: arreglo[30] entero
i:entero
Almacenar los valores de la produccin en cada uno de los elementos del arreglo
for(i=0; i<=29; i++)
Solicitar produccion dia[0] = dia1
Leer produccin[0]
Fin del for
Mostrar en pantalla los valores almacenados en c/u de los 30 dias
for(i=0; i<=29; i++)
Imprime produccin[ i]
Fin del for
Fin de la aplicacin
Arreglos
Arreglos Bidimensionales matriz
Columna 0
4
Renglon 0
Rengln 1
Renglon 2
Rengln 3
0,1
1,1
2,1
3,1
0,2
1,2
2,2
3,2
0,3
1,3
2,3
3,3
0,4
1,4
2,4
3,4
Arreglos
Es posible inicializar los elemenos de un arreglo de la siguiente forma:
Int arregloProduccion[ ] =
1,2,3,4
5,6,7,8
Arreglos
Algoritmo para leer datos de un arreglo bidimensional
Leer los numeros enteros de una matriz de 4 x 5
Declarar variables
Numeros: arreglo[4][5] entero
Ren, col: entero
Obtener valores desde el teclado
For ren=0; ren<=3; ren++
For col=0; col<=4; col++
Solicitar numeros [ren] [col]
Almancenar valores en cada elemento del arreglo
Fin del for
Fin del for
Imprimir valores de la matriz en pantalla
For ren=0; ren<=3; ren++
For col=0; col<=4; col++
Imprimir numeros[ren] [col]
Fin for col
Fin for ren
Fin del programa
6
1
2
4
7
18
3
5
14
1
2
3
4
5
6
7
14
18
18
14
7
6
5
4
3
2
1
- Burbuja
- Fusin
- Seleccin
- Montculo
Estrutura de datos
En programacin, una estructura de datos es una forma de organizar
un conjunto de datos elementales (un dato elemental es la mnima
informacin que se tiene en el sistema) con el objetivo de facilitar la
manipulacin de estos datos como un todo y/o individualmente.
Una estructura de datos define la organizacin e interrelacionamiento
de estos, y un conjunto de operaciones que se pueden realizar sobre
l.
Las operaciones bsicas son:
Estrutura de datos
Otras operaciones que se pueden realizar son:
Estrutura de datos
Tipos de estructuras:
Arreglos
Vectores
Matrices
rboles
rboles binarios
rboles multicambio
Listas enlazadas
Listas simples
Listas dobles
Listas circulares
Conjuntos
Pilas
Colas
Grafos
Monticulos
Algoritmo de la burbuja
Es uno de los mtodos ms fciles de ordenacin y es muy simple. Se compara cada
elemento del arreglo con el siguiente (por parejas), si no estn en el orden correcto, se
intercambian entre si sus valores.
El valor mas pequeo flota hasta la parte superior del array como si fuera una burbuja
en un vaso de refresco de gas.
Ejemplo de ordacin por burbuja
Lista desordenada: 6 4 10 2 8
6
10
10
10
10
Segunda
Pasada
10
10
Tercera pasada
10
10
Primera Pasada
Algoritmo de la burbuja
Lista desordenada: 25 60 45 35 12 92 85 30
Pasada 0 original
25 60 45 35
12
92
85
30
Pasada 1
25 45 35 12
60
85
30
92
Pasada 2
25 35 12 45
60
30
85
92
Pasada 3
25 12 35 45
30
60
85
92
Pasada 4
12 25 35 30
45
60
85
92
Pasada 5
12 25 30 35
45
60
85
92
4 8 6
4 8 6 2 No se realiza intercambio
4 8 6
4 8 6 2 Se realiza intercambio
2 8 6
2 6 8
2 6 8 4 Se realiza intercambio
2 4 8
2 4 6
Pasada 2
2 4 8 6 Se realiza intercambio
A[1]
A[2]
A[3]
A[4]
51
21
39
80
36
21
51
39
80
36
21
36
39
80
51
21
36
39
80
51
21
36
39
51
80
Lista ordenada
A[0]
A[1]
A[2]
A[3]
A[4]
11
17
14
17
11
14
Pasada 1. El 9 es el menor
17
11
14
11
17
14
11
14
17
Lista ordenada
A[1]
A[2]
A[3]
A[4]
50
20
50
20
40
50
20
40
50
80
20
30
40
50
80
A[0]
A[1]
A[2]
A[3]
A[4]
Metodo de Busqueda
Secuencial o Lineal y binaria
Arreglos Dinamicos
Un incoveniente de los arreglos unidimensionales es que tienen un tamao fijo y no es posible
agregar elementos al vector. Para poder hacer lo anterior se hace uso de la clase ArrayList.
La clase ArrayList (java.util) es una objeto que acta como una lista que implemente la
interfaz Collection de java. Esta clase permite contener y ordenar objetos, incluso, puede
almacenar objetos duplicados. Su tamao es dinmico, es decir, esta lista crecer a medida
que se inserten en ella mas elementos. Debememos recordar que el ndice de un ArrayList
empieza en 0 (cero), es decir, el primer elemento del ArrayList tiene como ndice el 0.
Listas Enlazadas
Qu es un nodo
Qu es un nodo
Metodo aadir
Para aadir un nodo a la lista, primero creamos un nodo, al que
llamaremos nuevoNodo, que contenga al Cliente entregado por el
nuevoCliente.v
argumento, al que llamaremos nuevoCliente.
Metodo aadir
Metodo aadir
Metodo buscar
Para encontrar un Cliente en la lista, debemos buscarlo por medio de
su atributo nico: el RUT. Es decir, crearemos un puntero puntero con
el que recorreremos la lista, comparando el RUT especificado con el
RUT de cada Client, hasta encontrar una coincidencia.
Grficamente:
Metodo remover
Para eliminar un nodo de la lista, primero debemos ubicar el nodo
anterior ste, es decir, puntero.siguiente ser el nodo a eliminar.
Ahora, simplemente dejamos sin puntero al nodo diciendo:
puntero.siguiente = puntero.siguiente.siguiente, para que el
Recolector de Basura de Java lo recoja y sea eliminado.
Grficamente:
Metodo remover
Pilas
Que es una pila
La Pila o Stack es una estructura de datos muy simple. Imagina que
tienes una pistola de juguete que dispara pelotas, y, para cargarla,
tienes que introducir las pelotas una a una por la parte frontal del
can de la pistola, una tras otra. La primera pelota que disparars
ser la ltima que introdujiste, y la ltima que disparars ser la
primera que introdujiste. Eso es una pila.
Pilas
Pilas
Otro ejemplo muy comn es la pila de platos que formas para
lavarlos: el ltimo plato que apilaste ser el primero que lavars.
La pila es una estructura que se basa en el concepto LIFO: Last In
First Out, es decir, el ltimo elemento que entra es el primero que
sale.
La implementacin de una pila es muy parecida a la de lista enlazada,
y slo difiere en la forma que gestionamos los elementos
almacenados.
Pilas
Mtodos
VerPrimero: La idea del mtodo verPrimero() es, simplemente, decirnos
quin es el objeto que est al principio de la pila, es decir, el ltimo objeto
ingresado y, potencialmente, el primero a eliminar. Para tener acceso a este
objeto, hacemos uso del atributo primeroDeLaPila, que no es ms que un
puntero al primer nodo de la pila. As que este mtodo slo retorna el
contenido de primeroDeLaPila, es decir, primeroDeLaPila.contenido.
Pilas
Grficamente mtodo sacar :
Pilas
Mtodo apilar: Este mtodo es el encargado de aadir nodos a la pila. Para
esto, es necesario que el nodo sea aadido al principio de la pila.
Grficamente:
Pilas
Otra forma de visualizar apilar y sacar :
Colas
Qu es una cola
La Cola o Queue es otra de las estructuras de datos que revisaremos en
este apunte. Como las pilas, las colas son muy simples de entender e
implementar.
La idea de la cola es simular el funcionamiento de una cola de la vida real,
por ejemplo, la cola de un banco. Imagina que tienes una pistola de juguete
parecida a la del ejemplo de pila, pero ahora, para cargarla, debes introducir
las pelotas por la parte trasera del can. Eso es una Cola.
La cola es una estructura que se basa en el concepto FIFO: First In First
Out, es decir, el primer elemento que entra es el primero que sale.
Tal como las pilas, la implementacin de la pila es muy parecida a la de lista
enlazada, y slo difiere en la forma que gestionamos los elementos
almacenados. En una cola, crearemos mtodos que cumplan las funciones
expuestas anteriormente y aclaradas con la Figura de la siguiente
diapositiva, es decir, un mtodo que agregue un nodo al principio de la cola
y otro que elimine el ltimo nodo de sta.
Colas
Colas
Mtodos:
Enfilar:Este mtodo tiene como objetivo poner en la fila al objeto entregado
en el argumento, al que llamaremos nuevoObjeto. Para hacer esto, se
debe agregar a la cola un nodo, al que llamaremos nuevoNodo, que
contenga a nuevoObjeto. Es decir ultimoEnLaCola.siguiente debe apuntar
a nuevoNodo, y luego ultimoEnLaCola debe apuntar a nuevoNodo.
Vemoslo grficamente:
Colas
Mtodos:
Sacar: Este mtodo es el encargado de atender al primero de la fila, es
decir, de eliminarlo de la cola y retornarlo. Para sto, simplemente basta
hacer que primeroEnLaCola apunte a su sucesor, o sea, primeroEnLaCola
= primeroEnLaCola.siguiente.
Vemoslo grficamente:
Colas
Mtodos:
Otra forma de visualizar los mtodos enfilar y sacar
Listas
Listas simples o sencillas.
Lista enlazada de nodos, donde cada nodo tiene un nico campo de
enlace.
Una variable de referencia contiene una referencia al primer nodo, cada
nodo (excepto el ltimo) enlaza con el nodo siguiente, y el enlace del ltimo
nodo contiene null para indicar el final de la lista.
Listas
Listas dobles
Una lista doblemente enlazada es una lista enlazada de nodos, donde
cada nodo tiene un par de campos de enlace. Un campo de enlace permite
atravesar la lista hacia adelante, mientras que el otro permite atravesar la
lista haca atrs.
Cada nodo se enlaza con el siguiente mediante el campo de enlace next,
excepto el ltimo nodo, cuyo campo de enlace next contiene null para
indicar el final de la lista (en direccion hacia adelante). De forma similar,
para la direccin contraria, una variable de referencia contiene una
referencia al ltimo nodo de la direccin normal (hacia adelante), lo que se
interpreta como el primer nodo.
Listas
Listas dobles
Listas
Listas Circulares
El campo de enlace del ltimo nodo de una lista de enlace simple contiene
un enlace nulo, ocurre lo mismo en los campos de enlace del primer y
ltimo elemento en ambas direcciones en las listas doblemente enlazadas.
Supongamos que en vez de esto los ltimos nodos contiene un enlace a
los primeros nodos.