
Problema al eliminar elemento de una cola circular.
Publicado por Gustavo (5 intervenciones) el 03/10/2021 07:32:42
Hola, estoy tratando de hacer un programa de colas de maximo 5 elementos y estoy teniendo un problema a la hora de eliminar un elemento cuando mi cola se vuelve circular, explico, cuando lleno mi cola y elimino 3 elementos me van a quedar 2 elementos en las posiciones 4 y 5, si ingreso otro elemento la cola se volvera circular y el nuevo elemento se ingresara en la posicion 1, el problema esta en que no logro encontrar una manera para que me elimine el de la posicion 4 y no el de la posicion 1. Si alguien me puede ayudar lo agradeceria mucho.
Codigo y algoritmos para insertar y eliminar a la cola:
#Insertar un elemento en una cola
#1.- Si (frente = final + 1) o (frente = 1 y final = n) escribir
# "desbordamiento" y terminar
#2.- Si no encontrar el nuevo valor de final
# a) si frente = 0 y final = 0 entonces
# hacer frente = final = 1
# b) si no
# si final = n y frente != 1
# hacer final = 1
# c) si no
# hacer final = final + 1
# Fin_paso2
#3.- Hacer cola [final] = elemento
#4.- terminar
#Eliminar un elemento de una cola
#1.- Si (frente = 0 y final = 0) entonces escribir
# "cola vacía" y terminar
#2.- si no
# Hacer elemento = cola [frente]
#3.- Encontrar el nuevo valor de frente
# a) si frente = final entoces /*solo tenía un elemento*/
# hacer frente = final = 0
# b) si no
# si frente = n entonces (Inciso h ejercicios)
# hacer frente = 1
# c) si no
# hacer frente = frente + 1
# fin si
#4.- terminar
import os
cola = []
frente = 0
final = 0
while True:
print("Menu")
print("Seleccione una opcion:")
print("1. Introducir datos:")
print("2. Eliminar datos:")
print("3. Mostrar cola:")
print("4. Terminar.")
opcion=input()
if opcion == "1":
if frente == final + 1 or frente == 1 and final == 5:
print("Desbordamiento")
else:
if frente == 0 and final == 0:
frente = final = 1
elif final == 5:
final = 1
else:
final += 1
valor = int(input("ingrese un elemento: "))
cola += [valor]
elif opcion == "2":
if frente == 0 and final == 0:
print("Cola vacía")
else:
del(cola[frente-1])
if frente == final:
frente = final = 0
elif frente == 5:
frente = 1
else:
frente += 1
elif opcion == "3":
print (cola,
frente,
final)
elif opcion == "4":
break
os.system("pause")
os.system("cls")
Codigo y algoritmos para insertar y eliminar a la cola:
#Insertar un elemento en una cola
#1.- Si (frente = final + 1) o (frente = 1 y final = n) escribir
# "desbordamiento" y terminar
#2.- Si no encontrar el nuevo valor de final
# a) si frente = 0 y final = 0 entonces
# hacer frente = final = 1
# b) si no
# si final = n y frente != 1
# hacer final = 1
# c) si no
# hacer final = final + 1
# Fin_paso2
#3.- Hacer cola [final] = elemento
#4.- terminar
#Eliminar un elemento de una cola
#1.- Si (frente = 0 y final = 0) entonces escribir
# "cola vacía" y terminar
#2.- si no
# Hacer elemento = cola [frente]
#3.- Encontrar el nuevo valor de frente
# a) si frente = final entoces /*solo tenía un elemento*/
# hacer frente = final = 0
# b) si no
# si frente = n entonces (Inciso h ejercicios)
# hacer frente = 1
# c) si no
# hacer frente = frente + 1
# fin si
#4.- terminar
import os
cola = []
frente = 0
final = 0
while True:
print("Menu")
print("Seleccione una opcion:")
print("1. Introducir datos:")
print("2. Eliminar datos:")
print("3. Mostrar cola:")
print("4. Terminar.")
opcion=input()
if opcion == "1":
if frente == final + 1 or frente == 1 and final == 5:
print("Desbordamiento")
else:
if frente == 0 and final == 0:
frente = final = 1
elif final == 5:
final = 1
else:
final += 1
valor = int(input("ingrese un elemento: "))
cola += [valor]
elif opcion == "2":
if frente == 0 and final == 0:
print("Cola vacía")
else:
del(cola[frente-1])
if frente == final:
frente = final = 0
elif frente == 5:
frente = 1
else:
frente += 1
elif opcion == "3":
print (cola,
frente,
final)
elif opcion == "4":
break
os.system("pause")
os.system("cls")
Valora esta pregunta


0