Eerst zullen we kijken wat is stapel En wat is wachtrij individueel, en dan zullen we de verschillen tussen stapel en wachtrij bespreken.
Wat is een stapel?
Een datastructuur. In het geval van een array is willekeurige toegang mogelijk, dat wil zeggen dat elk element van een array op elk moment toegankelijk is, terwijl in een stapel alleen sequentiële toegang mogelijk is. Het is een container die de invoeg- en verwijderingsregel volgt. Het volgt het principe LIFO (Laatste in, eerst uit) waarbij het invoegen en verwijderen plaatsvindt vanaf één kant die bekend staat als a bovenkant . In stapel kunnen we de elementen van een vergelijkbaar gegevenstype invoegen, dat wil zeggen dat de verschillende gegevenstype-elementen niet in dezelfde stapel kunnen worden ingevoegd. De twee bewerkingen worden uitgevoerd in LIFO, dat wil zeggen: duw En knal operatie.
Hieronder volgen de bewerkingen die op de stapel kunnen worden uitgevoerd:
In stapel, de bovenkant is een aanwijzer die wordt gebruikt om het laatst ingevoegde element bij te houden. Om de stapel te implementeren, moeten we de grootte van de stapel kennen. We moeten het geheugen toewijzen om de grootte van de stapel te krijgen. Er zijn twee manieren om de stapel te implementeren:
Wat is de wachtrij?
A
Overeenkomsten tussen stapel en wachtrij.
Er zijn twee overeenkomsten tussen de stapel en de wachtrij:
Zowel de stapel als de wachtrij zijn de lineaire gegevensstructuur, wat betekent dat de elementen opeenvolgend worden opgeslagen en in één keer worden geopend.
Zowel de stack als de wachtrij zijn flexibel qua omvang, wat betekent dat ze kunnen groeien en krimpen afhankelijk van de vereisten tijdens de runtime.
Verschillen tussen stapel en wachtrij
Hieronder volgen de verschillen tussen de stapel en de wachtrij:
Basis voor vergelijking | Stapel | Wachtrij |
---|---|---|
Beginsel | Het volgt het principe LIFO (Last In-First Out), wat inhoudt dat het element dat als laatste wordt ingevoegd, het eerste is dat wordt verwijderd. | Het volgt het principe FIFO (First In -First Out), wat inhoudt dat het element dat als eerste wordt toegevoegd het eerste element is dat uit de lijst wordt verwijderd. |
Structuur | Het heeft slechts één uiteinde van waaruit zowel het invoegen als verwijderen plaatsvindt, en dat uiteinde staat bekend als een top. | Het heeft twee uiteinden, d.w.z. een voor- en achterkant. De voorkant wordt gebruikt voor het verwijderen, terwijl de achterkant wordt gebruikt voor het invoegen. |
Aantal gebruikte wijzers | Het bevat slechts één aanwijzer die bekend staat als een topaanwijzer. De bovenste aanwijzer bevat het adres van het laatst ingevoegde of het bovenste element van de stapel. | Het bevat twee wijzers voor en achterwijzer. De voorste aanwijzer bevat het adres van het eerste element, terwijl de achterste aanwijzer het adres van het laatste element in een wachtrij bevat. |
Operaties uitgevoerd | Het voert twee bewerkingen uit: duwen en knallen. De push-bewerking voegt het element in een lijst in, terwijl de pop-bewerking het element uit de lijst verwijdert. | Het voert hoofdzakelijk twee bewerkingen uit: in de wachtrij plaatsen en uit de wachtrij halen. De inqueue-bewerking voert het invoegen van de elementen in een wachtrij uit, terwijl de dequeue-bewerking het verwijderen van de elementen uit de wachtrij uitvoert. |
Onderzoek van de lege toestand | Als top==-1, wat betekent dat de stapel leeg is. | Als voorkant== -1 of voorkant = achterkant+1, wat betekent dat de wachtrij leeg is. |
Onderzoek van de volledige toestand | Als top== max-1 betekent deze voorwaarde dat de stapel vol is. | Als achter==max-1 betekent deze voorwaarde dat de stapel vol is. |
Varianten | Er zijn geen typen. | Er zijn drie typen, zoals een prioriteitswachtrij, een cirkelvormige wachtrij en een wachtrij met twee uiteinden. |
Implementatie | Het heeft een eenvoudiger implementatie. | Het heeft een relatief complexe implementatie dan een stapel. |
Visualisatie | Een Stack wordt gevisualiseerd als een verticale verzameling. | Een wachtrij wordt gevisualiseerd als een horizontale verzameling. |