Heim  >  Artikel  >  Was ist der offensichtliche Vorteil des Kettenstapels im Vergleich zum sequentiellen Stapel?

Was ist der offensichtliche Vorteil des Kettenstapels im Vergleich zum sequentiellen Stapel?

青灯夜游
青灯夜游Original
2021-11-08 13:57:1517479Durchsuche

Im Vergleich zum sequentiellen Stapel besteht der Vorteil des Kettenstapels darin, dass der Stapel normalerweise nicht voll ist. Da der sequentielle Stapel mit einem Array implementiert wird, muss die Größe des Stapels im Voraus bestimmt werden, und die Speichernutzungseffizienz ist nicht hoch, und Überlaufprobleme, die durch einen Platzmangel im Array verursacht werden, können nicht vermieden werden, während der Kettenstapel dynamisch angewendet wird für den Speicher, daher ist der Stapel im Allgemeinen nicht voll.

Was ist der offensichtliche Vorteil des Kettenstapels im Vergleich zum sequentiellen Stapel?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Dell G3-Computer.

Im Vergleich zum sequentiellen Stapel hat der Kettenstapel einen offensichtlichen Vorteil: Der Stapel ist normalerweise nicht voll.

Da der sequentielle Stapel mit einem Array implementiert ist, muss die Größe des Stapels im Voraus bestimmt werden, und die Speichernutzung ist nicht sehr effizient. Es ist unmöglich, Überlaufprobleme zu vermeiden, die durch Platzmangel im Array verursacht werden Der Kettenstapel gilt im Allgemeinen nicht für den Speicher, da er dynamisch für den Speicher gilt. Wenn der Stapel voll ist, wird immer noch ein leerer Stapel angezeigt.

Da es sich sowohl beim Kettenstapel als auch beim sequentiellen Stapel um Stapel handelt, ist der Stapel der erste und der letzte, und Einfüge- und Löschvorgänge können nur oben im Stapel ausgeführt werden, sodass der Kettenstapel keinen Vorteil gegenüber dem sequentiellen Stapel hat Stapel bei Einfüge- und Löschvorgängen.

Stapel

Als Datenstruktur ist ein Stapel eine spezielle lineare Tabelle, die nur an einem Ende Einfüge- und Löschvorgänge ausführen kann. Es speichert Daten nach dem Last-In-First-Out-Prinzip. Die Daten, die zuerst eingegeben werden, werden an den unteren Rand des Stapels verschoben, und die letzten Daten befinden sich oben im Stapel von oben aus dem Stapel entnommen (die letzten Daten werden zuerst ausgelesen). Der Stapel verfügt über eine Speicherfunktion. Bei Einfüge- und Löschvorgängen auf dem Stapel ist es nicht erforderlich, den unteren Zeiger des Stapels zu ändern.

Ein Stapel ist eine spezielle lineare Liste, die Einfüge- und Löschvorgänge am selben Ende ermöglicht. Das Ende, das Einfüge- und Löschvorgänge ermöglicht, wird als oberes Ende des Stapels bezeichnet, und das andere Ende ist das untere Ende des Stapels, und das obere Ende des Stapels ist schwebend , man spricht von einem leeren Stapel. Das Einfügen wird im Allgemeinen als PUSH bezeichnet, das Löschen als Popping (POP). Der Stapel wird auch als First-In-Last-Out-Liste bezeichnet.

Der Stapel kann zum Speichern von Haltepunkten verwendet werden, wenn Funktionen aufgerufen werden. Der Stapel wird bei der Rekursion verwendet!

Der Stack spielt eine wichtige Rolle beim Ablauf des Programms. Das Wichtigste ist, dass der Stapel die erforderlichen Wartungsinformationen speichert, wenn eine Funktion aufgerufen wird. Dies wird häufig als Stapelrahmen oder Aktivitätsdatensatz bezeichnet. Stapelrahmen enthalten im Allgemeinen die folgenden Informationsaspekte:

1. Die Rücksprungadresse und Parameter der Funktion

2. Temporäre Variablen: Einschließlich nicht statischer lokaler Funktionsvariablen und anderer vom Compiler automatisch generierter temporärer Variablen.

Weitere Informationen zu diesem Thema finden Sie in der Spalte „FAQ“!

Das obige ist der detaillierte Inhalt vonWas ist der offensichtliche Vorteil des Kettenstapels im Vergleich zum sequentiellen Stapel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn