Come implementare una coda usando due stack

Autore: Laura McKinney
Data Della Creazione: 3 Aprile 2021
Data Di Aggiornamento: 16 Maggio 2024
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

Come innestare un albero da frutto

John Stephens

Maggio 2024

e tai cercando di avviare un frutteto e vuoi aicurarti di ottenere buoni frutti, l'unico modo per farlo è l'inneto. L'inneto è anche il modo migliore per alvare un albero che ...

Pioggia di palloncini fatti in casa

John Stephens

Maggio 2024

Niente ignifica "celebrazione" come una cacata di palloncini e coriandoli che cadono opra di te. Una pioggia di palloncini è un progetto facile che puoi creare da olo con pochi coti. Qu...

Condividere