Está en la página 1de 2

Uso de Operaciones de TDA’s y seudocódigo para el desarrollo de algoritmos

Para mostrar el uso de las operaciones de TDA’s en el desarrollo de algoritmos,


implementaremos apoyados en seudocódigo la solución de dos problemas:

Problema
Utilizando seudocódigo y Operaciones del TDA Lista, escriba un programa que imprima
(liste) los elementos de una Lista.

Solución:

Procedimiento Listar ( L : LISTA ) //Un Procedimiento no retorna ningún valor


var temporal: Posicion_Lista
temporal <- L.PRIMERO()
si temporal <> L.FIN()
mientras temporal <> L.FIN() haga
imprimir L.RECUPERA(temporal)
temporal <- L.SIGUIENTE(temporal)
fin mientras
sino
imprimir “No hay Elementos que imprimir en la Lista”
fin Procedimiento Listar

Explicación del algoritmo:

1. En la primera línea de código se define un Procedimiento (proceso) de nombre


Listar que recibe como parámetro una Lista en el parámetro L de tipo LISTA.
2. En la segunda línea se crea una variable de nombre temporal y de tipo
Posicion_Lista (las posiciones en una lista son una secuencia de números
enteros que inicia en la posición uno)
3. En la tercera línea a temporal se le asigna ( <- ) el valor almacenado en la
primera posición de la lista L.
4. En la cuarta línea se comprueba si existan elementos en la lista o no; si existen
entonces se ejecutará el ciclo mientras, sino no hay elementos en la lista.
5. En la quinta línea se define un ciclo mientras que recorre la lista hasta
encontrar su Final.
6. Dentro del ciclo mientras en la sexta línea se imprime la información
almacenada en la posición temporal.
7. Siempre dentro del ciclo en la séptima línea se avanza un elemento a partir de
la posición almacenada en la variable temporal.
8. La octava línea termina el bloque del ciclo mientras.
9. En la novena línea se inicia la rama falsa del Si.
10. En la decima línea en la parte falsa del si se imprime un mensaje indicando que
no hay elementos en la lista.
11. La onceava línea sirve para marcar el final del procedimiento Listar.
Problema

Utilizando seudocódigo y operaciones de los TDA’s Lista y Pila, implemente un


programa que invierta los elementos de una Lista.

Solución:

Funcion Invierte(L:LISTA) : LISTA //Una función retorna un valor en este caso una LISTA
P: PILA
mientras (no L.VACIA()) haga
P.METE(L.RECUPERA(L.PRIMERO()))
L.SUPRIME(L.PRIMERO())
fin mientras
mientras (no P.VACIA()) haga
L.INSERTA(P.TOPE,L.FIN())
P.SACA()
fin mientras
retornar L
fin Procedimiento Invierte

Explicación del algoritmo:

El procedimiento recibe una lista como parámetro.

Se crea una Pila con nombre P.

El primer ciclo se ejecutará siempre y cuando la lista L no este vacía, en este ciclo se va
agregando el primer elemento de la lista a la pila, luego el primer elemento se elimina
de la Lista L (el segundo elemento pasa a ser ahora el primero y así sucesivamente). Al
concluir este ciclo la lista L estará vacía y la pila P contendrá todos los elementos de la
lista, la pila P tendrá almacenado en su TOPE el ultimo elemento de la lista L.

En el segundo ciclo se ejecutara mientras haya elementos en la pila P, en este ciclo


cada uno de los elementos de la Pila P son nuevamente agregados a la lista L ( que
inicia este ciclo estando vacía), con el cuidado de insertar los elementos siempre al
final de la Lista L, después de la inserción en la lista, el elemento TOPE de la Pila P es
eliminado (el siguiente elemento al TOPE será el nuevo TOPE y así sucesivamente),
hasta que la pila ya no tenga mas elementos.

Al finalizar el segundo ciclo la Pila P estará vacía y la Lista L tendrá nuevamente todos
sus elementos, pero en orden inverso.

También podría gustarte