martes, 20 de mayo de 2014

Colas
¿Que es una cola?
La cola en estructura de datos, es una regla que restringue las operaciones en las estructuras lineales como lo son los arreglos o listas enlazadas). Tiene una estructura FIFO (First in first out), es decir el primero en entrar es en primero en salir
Funcioamiento de una cola 
1.

2.
3.
4.

5.

¿Como se implementa?

- Arreglos
- Nodos/Listas (Simples y Dobles), entre otras.
Las colas, como otras estructuras contienen operaciones basicas, que al igual que las pilas son:
poner y quitar. Y auxiliares como: vacia y llena.
Metodos: Teniendo en cuenta que se implemente en un vector y este esta creado... Los metodos son:
Poner{ fin++; V[fin] = dato;
Quitar{ dato = V[frente]; frente++;


Pilas 
¿Que es una pila?
Es una regla que se aplica a una estructura lineal simple (vector, lista) obligar que las operaciones se comporten de tal manera que el ultimo elemento en poner es el primero en quitar (LIFO VEPF.

-Utilidad

  • Retroceder un proceso
  • Regresar total o paralelamente al punto de partida
-Aplicaciones 
  • Sistema operativo; llamada a subprogramas.
  • Compiladores; evaluacion de expresiones aritmeticas.


-Operaciones 
  • Poner
  • Quitar
  • Cima
  • Vacia
  • Llena
-Implementacion 
1.Vectores

Tope 1= el indice donde esta el ultimo elemento 
Max 5= cantidad que soporta el vector 

-Operaciones 
  • Poner -Poner ,Tope ++; v {tope}=dato 
  • Quitar-dato =v{tope}; Tope --;
  • Cima { dato=v tope;
  • Vacia {tope==-1;
  • Llena {tope== max-1;


-Aplicaciones de pila 
Expresiones 
Infijas a+b+c---> Normalmente conocidas 
Prefijas +a*bc--->Operadores antes de operandos 
Posfijas: abc*+---> Operadores despues de operandos 

Infijos 
(a+b)* c´(1/2)

a+b*c´1/2

Prefijas
 (a+b)*c´(1/2)
+ab*c´/12
+ab*´c/12
*ab´c/12

Posfijas 
(a+b) *c´(1/2)
ab+*c´12/
ab+*c12/
ab+c12/´*



miércoles, 2 de abril de 2014

Operaciones entre listas enlazadas

Incercion al inicio 
Metodo: p = new Nodo (x, p); Donde p es la bariable que apunta al nodo, x el dato a ingresar y p la direccion en caso de que la direccion sea null, debe colocarse de esta manera: p = new Nodo (x, null);
Ejemplo insercion al inicio doble
Nota: primero se valida si p es diferente a null, siendo asi se procede a cambiar la direccion anterior, y se agrega un nuevo nodo. Luego, dejamos a p apuntando a ese nuevo nodo creado. Sino se cumple tal condicion signica que p si esta null por lo tanto se crea un nuevo nodo.
Ejemplo insercion al final
Nota: se valida si p es diferente a null y siendo asi, se procede a cambiar la direccion siguiente de q, asignandole un nuevo... Por lo tanto q quedaria apuntando a ese nuevo nodo, sino se cumple esta condicion se crea un nuevo nodo.
Ejemplo insercion al final doble
Nota: se validad si p es diferente a null, siendo asi, se procede a cambiar la direccion anterior al primer nodo que apunta, asignandole a este un uevo nodo, luego se procede a pasar la direccion del nuevo nodo a p. En caso de que no se cumpla la condicion se crea un nuevo nodo.
Ejemplo Codigo Buscar
Ejemplo insercion antes de

Operaciones entre listas enlazadas

Operaciones entre listas enlazadas

Estas listas enlazadas, como todo contiene unas operaciones basicas, las cuales son:
- Insertar y eliminar que se compone por:
* Insercion al inicio, al final, antes de y despues de.
- Buscar que se compone de:
* Consultar, modificar, eliminar.
- Ordenar
if (p!=null){
p.setAnt (new nodoDoble(d,null,p));
p=p.getAnt();
} else{
P=new nodoDoble(d,null,null);
}
Simple


Si (P!=null){
q.setsig (new nodo (d,null));
q=q.setsig();
}else{
p=q newNodo (d,null);

miércoles, 26 de marzo de 2014

Tipos de listas enlazadas

Tipos de listas enlazadas 
base de listas: objeto nodo

tipo simple


Variables                                    Objetos 
X 1010                                         1010
                                                      nodo   
y 2020                                          dato 7
                                                     sig 2020



                                                    2020
                                                     nodo
                                                     dato 4
                                                     sig 3030

                                                     3030
                                                      nodo
                                                      dato 4
                                                      sig 2010
                              

Listas enlazadas

Listas enlazadas 
En esta clase el profesor hizo ejercicios de listas enlazadas a continuacion los ejercicios resueltos 
Xx =null
Xy =null
int d;
for (int i=1 ; i<---- ;i++){
if (x==null){
X=Y =neww x();
}else{
y.setB(new x());
y=y.getB();
}
leer.entero(d);
y.setA (d);


Memoria

Variables


d
i
Y

Objetos 

1010
   X
a 7
b 1020


1020
   x
a 3
b 1050


1050
   x
a 4
b null

Y=X
while(Y!=null){
s.o.p(Y.getA()); ------>7,3,4
Y=y.getB();

Listas estaticas y arreglos

Listas estáticas (arreglos)
Clases autorreferenciadas (listas enlazadas)
En esta clase el docente dio una introducción a lo que son listas enlazadas también nos enseño lo referente a nodos simples dobles y múltiples a continuación lo dado en clase
                                                      1010 1014 1018 1026 1030
V 1010                                           3      7       9       4        5       cada dato y su dirección en memoria
v {3} =4                                         2010
1010+3*4= 1022                           8
           int/bytes
X 1010
V 2070
Y 3010

V{5}=8
1010+5*4=1030