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)-
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.
-
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).
-
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.
-
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).
Due pile equivalgono a una fila
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