Forskel Mellem Stack og Heap

Anonim

Stack vs Heap

Stack er en ordnet liste, hvor indsættelse og sletning af listeposter kun kan foretages i den ene ende kaldet top. På grund af denne grund betragtes stakken som en sidste struktur (LIFO). Heap er en speciel datastruktur, der er baseret på træer, og den opfylder en særlig ejendom kaldet heapegenskaben. En bunke er også et komplet træ, hvilket betyder, at der ikke er huller mellem træets blade i. e. i et komplet træ er hvert niveau udfyldt, før der tilføjes et nyt niveau til træet, og noderne i et givet niveau er fyldt fra venstre mod højre.

Hvad er Stack?

Som tidligere nævnt er stakken en datastruktur, hvori elementer tilføjes og fjernes fra kun den ene ende kaldet toppen. Stabler tillader kun to grundlæggende operationer kaldet push og pop. Trykbetjeningen tilføjer et nyt element til toppen af ​​stakken. Popoperationen fjerner et element fra toppen af ​​stakken. Hvis stakken allerede er fuld, betragtes det som en stakoverløb, når en push-operation udføres. Hvis en popoperation udføres på en allerede tom stak, betragtes den som en stabelunderstrømning. På grund af det lille antal operationer, der kunne udføres på en stak, betragtes det som en begrænset datastruktur. Desuden er det klart, at de elementer, der blev tilføjet sidst i stakken, ud fra stakken først efter den måde, hvorpå push og pop-operationerne er defineret. Derfor betragtes stakken som en LIFO datastruktur.

Hvad er Heap?

Som nævnt tidligere er bunke et komplet træ, der opfylder bunkeegenskaben. Heap-egenskaben siger, at hvis y er et barneknudepunkt for x, skal værdien gemt i node x være større end eller lig med den værdi, der er lagret i node y (i. E. Værdi (x) ≥ værdi (y)). Denne egenskab indebærer, at node med den største værdi altid vil blive placeret ved roden. En bunke konstrueret ved hjælp af denne ejendom kaldes en max-bunke. Der er en anden variant af heapegenskaben, der angiver omvendt af dette. (i. e. værdi (x) ≤ værdi (y)). Dette indebærer, at knuden med den mindste værdi altid vil blive placeret ved roden, så kaldt en min-bunke. Der er en bred vifte af operationer udført på dynger som f.eks. At finde minimum (i minhøjder) eller maksimum (i makshøjder), slette minimum (i minhopper) eller maksimum (i makshøjder), stigende -billeder) eller faldende (i minhopper) nøgle mv.

Hvad er forskellen mellem Stack and Heap?

Den største forskel mellem stakke og dynger er, at mens stack er en lineær datastruktur, er heap en ikke-lineær datastruktur. Stack er en ordnet liste, der følger LIFO-ejendommen, mens bunken er et komplet træ, der følger huseegenskaben.Stakken er desuden en begrænset datastruktur, der kun understøtter et begrænset antal operationer som push og pop, mens heap understøtter en bred vifte af operationer som f.eks. At finde og slette minimum eller maksimum, hvilket øger eller formindsker nøglen og fusionerer.