Innhold
Kø er en dynamisk datastruktur hvorfra du kan få tilgang til data i en "første-come, first-out" -prosess. En stabel er en dynamisk datastruktur hvorfra du kan få tilgang til dataene i en "last-in, first-out" -prosess. Hvis du implementerer en stabel, blir bare det siste elementet du legger inn tilgjengelig. Hvis du vil ha tilgang til dataene som ligger til grunn for det (det første elementet du legger inn), så behandler du det som en kø. For å gjøre dette må du implementere en andre haug.
retninger
Det er enkelt å implementere en kø med to stabler (Ablestock.com/AbleStock.com/Getty Images)-
I tekstredigeringsprogrammet skriver du koden for å implementere stakken i henhold til prosedyrene og funksjonene som er tilgjengelige i programmeringsspråket du vil bruke. Ring denne Stack_Entry-stakken. Sett dataene i Stack_Entry (mange programmeringsspråk bruker "push" -kommandoen for å legge til data). Kjør for eksempel "push" -kommandoen i Stack_Entry for å skrive inn dataene i følgende rekkefølge: "A", "B" og "C". "A" er den første som kommer inn og er på bunnen av stabelen. Hvis du vil ha tilgang til dette første elementet, behandler du dataene som en kø.
-
Skriv koden for å implementere en annen stabel i henhold til prosedyrene og funksjonene som er tilgjengelige i programmeringsspråket du vil bruke. Kaller det StackSafe (mange programmeringsspråk bruker "pop" -kommandoen for å fjerne data fra en stabel).
-
Fjern hvert element fra Stack_Insert-bunken og legg dem i sovestabletten. Vanligvis fjerner du et Stack_Input-element og legger det i StackAid. Deretter sjekker du om Stack_Input er tom. Hvis det ikke er tomt, fjern det neste elementet fra Stack_Input og legg det i sovestabletten. Gjenta til Stack_Input er tomt. I vårt eksempel fjerner du "C" fra Stack_Input og legger det i Stack_Aid. Kontroller at InputPilot er tom. Fjern "B" fra Stack_Input og sett den til Stack_Aid. Kontroller at InputPilot er tom. Fjern "A" fra Stack_Input og sett den til Stack_Aid. Kontroller at InputPilot er tom.
-
Når Stack_Path-stakken er tom, er elementet som var i Stack_Input ("A" i vårt eksempel), nå øverst på Stack_Aside. Fjern SleepSeat-elementet, og du har slått stakken inn i en kø. Ditt første element i stakken er nå det første elementet som skal tas ut (først inn, først ut eller FIFO i første inn, først ut).
To stabler er like i en rad
tips
- De fleste programmeringsspråk gir funksjoner for å behandle data i en vektor som om det var en kø eller en stabel. Det vil si at du kan få tilgang til både den siste og den første posisjonen til vektoren, uavhengig av hvilken ende du skriver inn data fra. Hvis dataene er i en vektor, trenger du ikke å bekymre deg for å få tilgang til dem som en kø eller en stabel. Men hvis dataene dine er i en dynamisk haug og du vil behandle den som en kø, bør du implementere en annen stabel.
Hva du trenger
- En tekstredigerer
- En kompilator eller tolk for noen programmeringsspråk