Först ska vi titta på vad är stack och vad är kö individuellt, och sedan kommer vi att diskutera skillnaderna mellan stack och kö.
Vad är en stack?
En datastruktur. I fallet med en array är slumpmässig åtkomst möjlig, d.v.s. alla element i en array kan nås när som helst, medan sekventiell åtkomst i en stack endast är möjlig. Det är en behållare som följer regeln för infogning och borttagning. Det följer principen LIFO (Sist in, först ut) där infogningen och raderingen sker från en sida som kallas a topp . I stack kan vi infoga elementen av en liknande datatyp, d.v.s. de olika datatypelementen kan inte infogas i samma stack. De två operationerna utförs i LIFO, dvs. skjuta på och pop drift.
Följande är operationerna som kan utföras på stacken:
I stacken, den topp är en pekare som används för att hålla reda på det senast infogade elementet. För att implementera stacken bör vi veta storleken på stacken. Vi måste allokera minnet för att få storleken på stacken. Det finns två sätt att implementera stacken:
Vad är kön?
A
Likheter mellan stack och kö.
Det finns två likheter mellan stacken och kön:
Både stacken och kön är den linjära datastrukturen, vilket innebär att elementen lagras sekventiellt och nås i en enda körning.
Både stacken och kön är flexibla i storlek, vilket innebär att de kan växa och krympa enligt kraven vid körning.
Skillnader mellan stack och kö
Följande är skillnaderna mellan stack och kö:
Underlag för jämförelse | Stack | Kö |
---|---|---|
Princip | Det följer principen LIFO (Last In-First Out), vilket innebär att elementet som infogas sist skulle vara det första som raderades. | Det följer principen FIFO (First In -First Out), vilket innebär att elementet som läggs till först skulle vara det första elementet som tas bort från listan. |
Strukturera | Den har bara en ände från vilken både infogningen och raderingen sker, och den änden är känd som en topp. | Den har två ändar, dvs främre och bakre ände. Den främre änden används för raderingen medan den bakre änden används för infogningen. |
Antal använda pekare | Den innehåller bara en pekare som kallas topppekare. Den översta pekaren innehåller adressen till det senast infogade eller det översta elementet i stacken. | Den innehåller två pekare främre och bakre pekare. Den främre pekaren håller adressen till det första elementet, medan den bakre pekaren håller adressen till det sista elementet i en kö. |
Utförda operationer | Den utför två operationer, push och pop. Push-operationen infogar elementet i en lista medan pop-operationen tar bort elementet från listan. | Den utför huvudsakligen två operationer, enqueue och dequeue. Enqueue-operationen utför infogningen av elementen i en kö medan dequeue-operationen utför raderingen av elementen från kön. |
Undersökning av det tomma tillståndet | Om top==-1, vilket betyder att stacken är tom. | Om front== -1 eller front = rear+1, vilket betyder att kön är tom. |
Undersökning av fullt skick | Om top== max-1, innebär detta villkor att stacken är full. | Om rear==max-1 innebär detta tillstånd att stacken är full. |
Varianter | Den har inga typer. | Det är av tre typer som prioritetskö, cirkulär kö och dubbelkö. |
Genomförande | Den har en enklare implementering. | Den har en jämförelsevis komplex implementering än en stack. |
Visualisering | En stack visualiseras som en vertikal samling. | En kö visualiseras som en horisontell samling. |