Come implementare una coda usando due stack

Autore: Laura McKinney
Data Della Creazione: 3 Aprile 2021
Data Di Aggiornamento: 15 Gennaio 2025
Anonim
Prog II - Implemento una CODA - queue: a FIFO Data Structure
Video: Prog II - Implemento una CODA - queue: a FIFO Data Structure

Contenuto

Queue è una struttura dati dinamica da cui è possibile accedere ai dati in un processo "first-come, first-out". Uno stack è una struttura dati dinamica da cui è possibile accedere ai dati in un processo "last-in, first-out". Se implementi uno stack, sarà disponibile solo l'ultimo elemento inserito. Se vuoi accedere ai dati che ne sono alla base (il primo elemento che hai inserito), lo tratterai come una coda. Per fare ciò, è necessario implementare un secondo heap.


indicazioni

L'implementazione di una coda utilizzando due stack è semplice (Ablestock.com/AbleStock.com/Getty Images)

    Due pile equivalgono a una fila

  1. Nell'editor di testo, scrivere il codice per implementare lo stack in base alle procedure e alle funzioni disponibili nel linguaggio di programmazione che si desidera utilizzare. Chiama questo stack Stack_Entry. Inserisci i dati nello Stack_Entry (molti linguaggi di programmazione usano il comando "push" per aggiungere dati). Ad esempio, eseguire il comando "push" in Stack_Entry per immettere i dati nel seguente ordine: "A", "B" e "C". "A" è il primo a entrare e si trova in fondo alla pila. Se si desidera accedere a questo primo elemento, si trattano i dati come una coda.

  2. Scrivere il codice per implementare un secondo stack in base alle procedure e alle funzioni disponibili nel linguaggio di programmazione che si desidera utilizzare. Chiamalo StackSafe (molti linguaggi di programmazione usano il comando "pop" per rimuovere i dati da una pila).


  3. Rimuovi ogni elemento dallo stack Stack_Insert e posizionali nello Stack Sonno. In termini generali, si rimuove un oggetto Stack_Input e lo si inserisce in StackAid. Quindi verifichi se Stack_Input è vuoto. Se non è vuoto, rimuovi l'elemento successivo da Stack_Input e posizionalo nello Sleep Stack. Ripeti fino a quando Stack_Input è vuoto. Nel nostro esempio, rimuovi "C" da Stack_Input e mettilo in Stack_Aid. Assicurati che InputPilot sia vuoto. Rimuovi "B" da Stack_Input e impostalo su Stack_Aid. Assicurati che InputPilot sia vuoto. Rimuovi "A" da Stack_Input e impostalo su Stack_Aid. Assicurati che InputPilot sia vuoto.

  4. Quando lo stack Stack_Path è vuoto, l'elemento che si trova nella base Stack_Input ("A" nel nostro esempio) si trova ora nella parte superiore di Stack_Aside. Rimuovi l'elemento SleepSeat e hai trasformato lo stack in una coda. Il tuo primo oggetto in pila è ora il primo oggetto da estrarre (primo dentro, primo fuori o FIFO in primo, primo fuori).


suggerimenti

  • La maggior parte dei linguaggi di programmazione fornisce funzioni per trattare i dati in un vettore come se fosse una coda o uno stack. Cioè, puoi accedere sia alla prima sia alla prima posizione del vettore, indipendentemente da quale parte stai inserendo i dati. Se i tuoi dati sono in un vettore, non devi preoccuparti di accedervi come coda o stack. Ma se i tuoi dati sono in un heap dinamico e vuoi trattarli come una coda, allora dovresti implementare un secondo stack.

Cosa ti serve

  • Un editor di testo
  • Un compilatore o interprete per alcuni linguaggi di programmazione

I dipendenti del ervizio clienti vengono aunti in bae ai loro punti di forza ul campo. I punti di forza e di debolezza comuni ono peo citati nel ettore del ervizio clienti, quindi i datori di lavoro p...

Regali di battesimo adatti ai nipoti

Robert Simon

Gennaio 2025

Il batteimo di tuo nipote è un'occaione peciale che richiede un regalo ben fatto. Alcuni doni del batteimo ono religioi, con l'obiettivo di incoraggiare il bambino a eguire la religione. ...

Articoli Per Te