logo

Stak vs. kø

Først vil vi se på hvad er stak og hvad er kø individuelt, og så vil vi diskutere forskellene mellem stak og kø.

Hvad er en stak?

En datastruktur. I tilfælde af et array er tilfældig adgang mulig, dvs. ethvert element i et array kan tilgås til enhver tid, hvorimod den sekventielle adgang kun er mulig i en stak. Det er en beholder, der følger reglen om indsættelse og sletning. Det følger princippet LIFO (Last In First Out) hvor indsættelsen og sletningen finder sted fra den ene side kendt som en top . I stakken kan vi indsætte elementerne af en lignende datatype, dvs. de forskellige datatypeelementer kan ikke indsættes i den samme stak. De to operationer udføres i LIFO, dvs. skubbe og pop operation.

Stak vs. kø

Følgende er de operationer, der kan udføres på stakken:

    push(x):Det er en operation, hvor elementerne indsættes i toppen af ​​stakken. I den skubbe funktion, skal vi sende et element, som vi vil indsætte i en stak.pop():Det er en operation, hvor elementerne slettes fra toppen af ​​stakken. I den pop() funktion, behøver vi ikke sende noget argument.kig()/top():Denne funktion returnerer værdien af ​​det øverste element, der er tilgængeligt i stakken. Ligesom pop() returnerer den værdien af ​​det øverste element, men fjerner ikke dette element fra stakken.er tom():Hvis stakken er tom, vil denne funktion returnere en sand værdi, ellers vil den returnere en falsk værdi.er fuld():Hvis stakken er fuld, vil denne funktion returnere en sand værdi, ellers vil den returnere en falsk værdi.

I stakken top er en pointer, som bruges til at holde styr på det sidst indsatte element. For at implementere stakken bør vi kende størrelsen på stakken. Vi er nødt til at allokere hukommelsen for at få størrelsen på stakken. Der er to måder at implementere stakken på:

    Statisk:Den statiske implementering af stakken kan udføres ved hjælp af arrays.Dynamisk:Den dynamiske implementering af stakken kan gøres ved hjælp af en linket liste.

Hvad er køen?

EN

Ligheder mellem stak og kø.

Der er to ligheder mellem stakken og køen:

    Lineær datastruktur
    Både stakken og køen er den lineære datastruktur, hvilket betyder, at elementerne lagres sekventielt og tilgås i en enkelt kørsel.Fleksibel i størrelsen
    Både stakken og køen er fleksible i størrelsen, hvilket betyder, at de kan vokse og krympe i overensstemmelse med kravene på kørselstiden.

Forskelle mellem stak og kø

Stak vs. kø

Følgende er forskellene mellem stakken og køen:

Grundlag for sammenligning Stak
Princip Det følger princippet LIFO (Last In-First Out), hvilket indebærer, at det element, der indsættes sidst, ville være det første, der slettes. Det følger princippet FIFO (First In-First Out), hvilket indebærer, at det element, der tilføjes først, ville være det første element, der fjernes fra listen.
Struktur Den har kun én ende, hvorfra både indsættelsen og sletningen finder sted, og den ende er kendt som en top. Den har to ender, nemlig for- og bagende. Forenden bruges til sletningen, mens bagenden bruges til indsættelsen.
Antal brugte pointere Den indeholder kun én pointer kendt som en top pointer. Den øverste markør indeholder adressen på det sidst indsatte element eller det øverste element i stakken. Den indeholder to pointers forreste og bagerste pointer. Den forreste markør holder adressen på det første element, mens den bagerste viser adressen på det sidste element i en kø.
Udførte operationer Den udfører to operationer, push og pop. Push-operationen indsætter elementet i en liste, mens pop-operationen fjerner elementet fra listen. Den udfører hovedsageligt to operationer, enqueue og dequeue. Enqueue-operationen udfører indsættelsen af ​​elementerne i en kø, mens dequeue-operationen udfører sletningen af ​​elementerne fra køen.
Undersøgelse af den tomme tilstand Hvis top==-1, betyder det, at stakken er tom. Hvis front== -1 eller front = rear+1, betyder det, at køen er tom.
Undersøgelse af fuld tilstand Hvis top== max-1, betyder denne betingelse, at stakken er fuld. Hvis rear==max-1, betyder denne tilstand, at stakken er fuld.
Varianter Den har ingen typer. Det er af tre typer som prioritetskø, cirkulær kø og dobbeltkø.
Implementering Det har en enklere implementering. Det har en forholdsvis kompleks implementering end en stak.
Visualisering En stak er visualiseret som en vertikal samling. En kø visualiseres som en vandret samling.