Cola circular
Una cola circular o anillo es una estructura de datos en la que los elementos están de forma circular y cada elemento tiene un sucesor y un predecesor. Los elementos pueden consultarse, añadirse y eliminarse únicamente desde la cabeza del anillo que es una posición distinguida. Existen dos operaciones de rotaciones, una en cada sentido, de manera que la cabeza del anillo pasa a ser el elemento sucesor, o el predecesor, respectivamente, de la cabeza actual.
Anillo en Maude
fmod ANILLO {X :: TRIV} issorts AnilloNV{X} Anillo{X} .subsort AnilloNV{X} < Anillo{X} .Int num;If(vacía())No funcia code op crear : -> Anillo{X} [ctor] .op insertar : X$Elt Anillo{X} -> AnilloNV {X} [ctor] . -> Anillo{X} .ops rotarDch rotarIzq : Anillo{X} -> Anillo{X} .op cabeza : AnilloNV{X} -> X$Elt .op esVacio? : Anillo{X} -> Bool .op aLaCola : X$Elt Anillo{X} -> Anillo{X} .op elimCola : Anillo{X} -> Anillo{X} .op cola : AnilloNV {X} -> X$Elt .var A : Anillo{X} .vars E E2 : X$Elt .eq eliminar(crear) = crear .eq eliminar(insertar(E, A)) = A .eq cabeza(insertar(E, A)) = E .eq esVacio?(crear) = true .eq esVacio?(insertar(E, A)) = false .eq cola(insertar(E, crear)) = E .eq cola(insertar(E, insertar(E2, A))) = cola(insertar(E2, A)) .eq elimCola(crear) = crear .eq elimCola(insertar(E, crear)) = crear .eq elimCola(insertar(E, insertar(E2, A))) = insertar(E, elimCola(insertar(E2, A))) .eq aLaCola(E, crear) = insertar(E, crear) .eq aLaCola(E, insertar(E2, A)) = insertar(E2, aLaCola(E, A)) .eq rotarDch(crear) = crear .eq rotarDch(insertar(E, A)) = aLaCola(E, A) .
Anillo en Pseudolenguaje
FUNC CrearCola() : TColaVARIABLEScola: TColaINICIOcola.frente <- MAXCOLAcola.final <- MAXCOLARESULTADO <- colaFINPROC DestruirCola(&cola: TCola)INICIO//Sin modificacionesFINFUNC ColaLlena(cola: TCola): LÓGICOINICIORESULTADO <- (cola.final MOD MAXCOLA) + 1 = cola.frenteFINFUNC ColaVacia(cola: TCola): LÓGICOINICIORESULTADO <- cola.final = cola.frenteFINPROC MeterCola (&cola: TCola; &e: Telemento; &error: Terror)VARIABLESfin: NATURALINICIOSI ColaLlena(cola) ENTONCESerror <- ErrorColaLlenaEN OTRO CASOerror <- NoErrorfin <- (cola.final MOD MAXCOLA) + 1cola.final <- fincola.elementos[fin] <- eFINSIFINPROC SacarCola (&cola: TCola; &e: Telemento; &error: Terror)VARIABLESini: NATURALINICIOSI ColaVacia(cola) ENTONCES error <- ErrorColaLlenaEN OTRO CASOerror <- NoErrorini <- (cola.frente MOD MAXCOLA) + 1cola.frente <- inie <- cola.elementos[ini]FINSIFIN
Véase también
🔥 Top keywords: Wikipedia:PortadaEspecial:BuscarCleopatra I de EgiptoEslovaquiaCaso Asunta BasterraYasukeChatGPTRobert FicoTabla periódica de los elementosBridgertonCopa Libertadores 2024Nueva CaledoniaEl planeta de los simios (franquicia)CleopatraJessica Goicoechea JoverJesús NavasNicolás Jarry (tenista)YouTubeSegunda Guerra MundialPrimera Guerra MundialArroba (símbolo)Copa Sudamericana 2024BaloncestoLuísa Villalta GómezCopa Libertadores de AméricaCristiano Ronaldo16 de mayoAlejandro TabiloLionel MessiIsidro LabradorLoco MíaKingdom of the Planet of the ApesRichard GaddHernán BarcosClasificación para la Copa Mundial de Clubes de 2025Especial:CambiosRecientesLiga de Campeones de la UEFAMiguel Ángel AguilarAdolf Hitler