Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tipos
- Estacion: registro {
- nombre: cadena
- siguiente: numerico
- }
- var
- lista: vector [100] Estacion
- cabeza, ultimo, anterior, libre, pos, temp: numerico
- opcion: cadena
- nombre: cadena
- i: numerico
- encontrado: logico
- inicio
- cabeza = 0
- ultimo = 0
- libre = 1
- // Inicializar la lista
- desde i=1 hasta 99 {
- lista[i].siguiente = i + 1
- }
- lista[100].siguiente = 0
- repetir
- imprimir("\nMenú:")
- imprimir("\na. Insertar estación")
- imprimir("\nb. Eliminar estación")
- imprimir("\nc. Radio")
- imprimir("\nd. Salir")
- imprimir("\nElija una opción: ")
- leer(opcion)
- eval {
- caso (opcion == 'a')
- // Insertar estación
- si (libre == 0) {
- imprimir("\nLa lista está llena.")
- sino
- temp = libre
- libre = lista[libre].siguiente
- imprimir("\nIntroduce el nombre de la estación: ")
- leer(nombre)
- lista[temp].nombre = nombre
- si (cabeza == 0) {
- lista[temp].siguiente = temp
- cabeza = temp
- ultimo = temp
- sino
- lista[temp].siguiente = lista[cabeza].siguiente
- lista[cabeza].siguiente = temp
- ultimo = temp
- }
- imprimir("\nEstación insertada: ", nombre)
- }
- caso (opcion == 'b')
- // Eliminar estación
- si (cabeza == 0) {
- imprimir("\nNo hay estaciones para eliminar.")
- sino
- imprimir("\nIntroduce el nombre de la estación a eliminar: ")
- leer(nombre)
- temp = cabeza
- anterior = 0
- encontrado = FALSE
- repetir
- si (lista[temp].nombre == nombre) {
- encontrado = TRUE
- si (anterior == 0) {
- cabeza = lista[temp].siguiente
- //ultimo = si (cabeza = temp) 0 sino ultimo
- si (cabeza ==temp) {
- ultimo = 0
- }
- sino
- lista[anterior].siguiente = lista[temp].siguiente
- si (ultimo == temp) {
- ultimo = anterior
- }
- }
- lista[temp].siguiente = libre
- libre = temp
- imprimir("\nEstación eliminada: ", nombre)
- sino
- anterior = temp
- temp = lista[temp].siguiente
- }
- hasta (temp == cabeza or encontrado)
- si (not encontrado) {
- imprimir("\nEstación no encontrada.")
- }
- }
- caso (opcion =='c')
- // Submenú de Radio
- si (cabeza == 0) {
- imprimir("\nNo hay estaciones en la radio.")
- sino
- pos = cabeza
- repetir
- imprimir("\nRadio:")
- imprimir("\na. Siguiente")
- imprimir("\nb. Anterior")
- imprimir("\nc. Terminar")
- imprimir("\nEstación actual: ", lista[pos].nombre)
- imprimir("\nElija una opción: ")
- leer(opcion)
- eval {
- caso (opcion == 'a')
- pos = lista[pos].siguiente
- caso (opcion == 'b')
- temp = pos
- repetir
- temp = lista[temp].siguiente
- hasta (lista[temp].siguiente == pos)
- pos = temp
- caso (opcion =='c')
- // Terminar submenú
- //salir
- }
- hasta (opcion == 'c')
- }
- caso (opcion =='d')
- // Salir
- imprimir("\nSaliendo del programa.")
- //salir
- }
- hasta (opcion == 'd')
- fin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement