Inhoud
Wachtrij is een dynamische gegevensstructuur waaruit u toegang hebt tot gegevens in een "first-come, first-out" -proces. Een stapel is een dynamische gegevensstructuur van waaruit u toegang hebt tot de gegevens in een "last-in, first-out" -proces. Als u een stapel implementeert, wordt alleen het laatste item dat u invoert beschikbaar. Als je toegang wilt hebben tot de gegevens die er de basis van zijn (het eerste item dat je plaatst), dan behandel je het als een wachtrij. Om dit te doen, moet u een tweede heap implementeren.
routebeschrijving
Het implementeren van een wachtrij met behulp van twee stapels is eenvoudig (Ablestock.com/AbleStock.com/Getty Images)-
Noteer in de teksteditor de code om de stapel te implementeren volgens de procedures en functies die beschikbaar zijn in de programmeertaal die u wilt gebruiken. Noem deze Stack_Entry stack. Zet de gegevens in de Stack_Entry (veel programmeertalen gebruiken de "push" -opdracht om gegevens toe te voegen). Voer bijvoorbeeld de opdracht "push" in Stack_Entry uit om de gegevens in de volgende volgorde in te voeren: "A", "B" en "C". "A" is de eerste die binnenkomt en bevindt zich onderaan de stapel. Als u dit eerste item wilt openen, behandelt u de gegevens als een wachtrij.
-
Schrijf de code om een tweede stapel te implementeren volgens de procedures en functies die beschikbaar zijn in de programmeertaal die u wilt gebruiken. Noem het StackSafe (veel programmeertalen gebruiken de opdracht "pop" om gegevens uit een stapel te verwijderen).
-
Verwijder elk item uit de Stack_Insert-stack en plaats ze in de Sleep Stack. In het algemeen verwijdert u een Stack_Input-item en plaatst u het in StackAid. Vervolgens controleert u of de Stack_Input leeg is. Als het niet leeg is, haal je het volgende item uit de Stack_Input en plaats je het in de Sleep Stack. Herhaal totdat Stack_Input leeg is. In ons voorbeeld verwijder je "C" uit Stack_Input en zet je het in Stack_Aid. Zorg ervoor dat InputPilot leeg is. Verwijder "B" uit Stack_Input en zet dit op Stack_Aid. Zorg ervoor dat InputPilot leeg is. Verwijder "A" uit Stack_Input en plaats dit op Stack_Aid. Zorg ervoor dat InputPilot leeg is.
-
Wanneer de Stack_Path-stack leeg is, bevindt het item dat zich in de stack Stack_Input ("A" in ons voorbeeld) bevindt zich nu aan de bovenkant van Stack_Aside. Verwijder het SleepSeat-item en u hebt uw stapel in een wachtrij geplaatst. Uw eerste item in de stapel is nu het eerste item dat moet worden verwijderd (first in, first out of FIFO in first in, first out).
Twee stapels zijn gelijk aan een rij
tips
- De meeste programmeertalen bieden functies om gegevens in een vector te behandelen alsof het een wachtrij of stapel is. Dat wil zeggen, u hebt toegang tot zowel de laatste als de eerste positie van de vector, ongeacht vanaf welk uiteinde u de gegevens invoert. Als uw gegevens deel uitmaken van een vector, hoeft u zich geen zorgen te maken dat u ze als wachtrij of stapel wilt gebruiken. Maar als uw gegevens zich in een dynamische heap bevinden en u deze als een wachtrij wilt behandelen, moet u een tweede stack implementeren.
Wat je nodig hebt
- Een teksteditor
- Een compiler of interpreter voor sommige programmeertaal