sábado, 18 de octubre de 2008

3.2- Colas:

Es una estructura de Datos lineal donde las eliminaciones de elementos se realizan por uno de sus extremos denominado FRONT y las inserciones de elementos se realizan por el otro extremo denominado final o Rear.

Las colas son estructuras de datos FIFO(first-in, first-out) porque el primer dato que se inserto sera el primero que saldra de la Cola.

=Operaciones en Una Cola=

1.PUSH.- Es el metodo por el cual se va a agregar un nuevo dato a la cola, tomando en cuenta la capacidad maxima de
almacenar en la estructura y las posiciones del frente y final en la cola.

Algoritmo:
Push(Cola,Frente,Final,Max,Elemento)
si Frente=0 y Final =Max-1 entonces
Imprimir "La Cola Esta Llena", y Salir
si no si Frente =Nulo(-1)  entonces
Frente=0
Final=0
si no
Final=Final+1
Cola[Final]=Elemento
Salir
NOTA:INICIALIZAR AL PRINCIPIO DEL PROGRAMA
*TAMAÑO DE LA COLA
*FRONT=-1
*REAR=-1


2.POP.- Es el Método por el cual se va a sacar el primer dato de la cola tomando en cuenta solo la posicion del frente.

Algoritmo:
Pop(Cola,Frente,Final,Maximo)
si Frente!=-1 entonces
Imprimir "Eliminando Dato", Cola[Frente]
Cola[Frente]=0
Si Frente=Final
Cola[Frente]=0
Final=-1
si no 
Frente=Frente+1
si no
Imprimir "La Cola Esta Vacía"
Salir

3.-Recorrido: Es el Método en el cual se despliega el contenido de la cola, si no hay ni un elemento en ella desplegara el 
mensaje "La Cola Esta Vacía"

Algorítmo:
Recorrido(cola,frente,final,max)
si frente !=-1 entonces
apuntador=frente
repetir mientras apuntador <=final
imprimir "elemento",cola[apuntador],"posicion",apuntador
apuntador=apuntador+1
fin del ciclo
si no
imprimir "La Cola Esta Vacía"
Salir.

4.-Busqueda: Esta metodo utiliza el recorrido para encontrar el elemento deseado y desplegar un mensaje con la posicion 
donde se encuentra siempre y cuando la busqueda sea exitosa si no desplegara el mensaje de que no encontro el elemento. En 
el caso de que no existan elementos en la cola desplegara "La Cola Esta Vacía".

Algrítmo:
Búsqueda(cola,frente,final,max)
si frente!=-1 entonces
apuntador=Frente
repetir mientras apuntador<=final
si elemento=cola[apuntador] entonces
imprimir "dato encontrado",elemento,"posicion",apuntador
y salir
si no
apuntador=apuntador+1
fin del ciclo
imprimir "dato:",elemento,"no esta en la cola"
si no
imprimir "La Cola Esta Vacía"
Salir

Unidad III.- Estructuras Lineales y Dinámicas

3.1- Pilas
*Pila.- Es un conjunto ordenado de elementos en el cual se pueden agregar y eliminar datos por uno de sus extremos
llamado tope de la pila(top). "Siempre empieza con valor -1 (marca el estado vacío de cualquier estructura)". La pila es una estructura de datos LIFO porque el ultimo datos que se inserta es el primero que se elimina (Last in-first out).

=OPERACIONES EN UNA PILA=
1.-Push-> Es el método a traves del cual se va a agregar un dato nuevo a la pila tomando en cuenta la capacidad máxima de almacenar en la estructura.

Algorítmo:
Push(Pila,Top,Max,Elemento)
Si Top !=Max-1 entonces
Top<-Top+1
Pila[Top],_Elemento
Si no
Imprimir "La Pila Esta Llena"
Salir.

2.-Pop-> (Eliminar) Es el método con el cual se va a eliminar el ultimo dato de la pila basandose en la posicion de Top.
Si no esxisten elementos en la pila, desplegara el mensage "La Pila Esta Vacía".

Algorítmo:
Pop(Pila,Top)
Si Top !=Nulo(-1) entonces
Imprimir "Elemento:",Pila[Top],"Será Eliminado"
Pila[Top]<-0
Top,_Top-1
Si no
Imprimir "La Pila Esta Vacía"
Salir.

(Programa 15)
Menu Operaciones en una Pila
1 Insertar Datos en la Pila
2 Eliminar Datos en la Pila
3 Desplegar Datos en la Pila
4 Buscar Datos en la Pila
5 Fin del Programa

Instrucciones:
1.-Inicializar Top=-1
2.-Pedir el Tamaño Máximo de la Pila y enviarlo al constructor para establecer el tamaño máximo de la pila.
3.-Pedir desde el Menu de dato a insertar y enviar como parámetro al método PUSH.
4.-Hacer 2 Programas: Uno que maneje datos de tipo double (número) y otro que maneje datos de tipo string (nombres)

3. Recorrido: 
Es el método a través del cual se hace un recorrido a la pila para desplegar los elementos a partir
de la posicion del tope de la pila y se repite hasta que la variable auxiliar sea igual a nulo(-1).

Algorítmo:
Recorrido (Pila, Top)
si Top!=Nulo(-1) entonces
Apuntador=Top
Repetir mientras apuntador !=Nulo
Imprimir "Elemeno",Pila[Apuntador],"Posicion:",Apuntador
Apuntador=Apuntador-1
Fin del ciclo
si no
Imprimir "La pila esta Vacía"
Salir

4. Busqueda:
Es el método que se utiliza para localizar un elemento en particular en la pila. si esta resulta exitosa desplegara el elemento y la posicion en la que se encuentra, si no desplegara el mensaje de que el elemento no fue encontrado.

Algorítmo:
Busqueda (Pila,Top,Elemento)
si Top!=Nulo(-1)
Apuntador=Top
Repetir mientras Apuntador!=Nulo
Si Pila[Apuntador]=Elemento entonces
Imprimir "El dato",Elemento,"fue encontrado en la posicion",Apuntador
Salir (RETURN)
Si no 
Apuntador=Apuntador-1
Fin del ciclo
Imprimir "El dato",Elemento,"no esta en la Pila"
si no
Imprimir "La pila esta Vacía"
Salir