Heim  >  Artikel  >  Backend-Entwicklung  >  Datenstrukturen: Unterschied zwischen Stapel und Warteschlange

Datenstrukturen: Unterschied zwischen Stapel und Warteschlange

藏色散人
藏色散人Original
2019-03-02 14:49:564496Durchsuche

Datenstrukturen: Unterschied zwischen Stapel und Warteschlange

Stapel:

Ein Stapel ist eine lineare Datenstruktur, in die Elemente nur von oben eingefügt werden können auflisten und löschen. Der Stapel folgt dem Last-In-First-Out-Prinzip, d. h. das zuletzt eingefügte Element ist das erste Element, das ausgegeben wird. Das Einfügen eines Elements in den Stapel wird als Push-Vorgang bezeichnet, das Entfernen eines Elements aus dem Stapel als Pop-Vorgang. In einem Stapel verfolgen wir immer das letzte in der Liste vorhandene Element mithilfe eines Zeigers namens top.

Das Diagramm des Stapels sieht wie folgt aus:

Datenstrukturen: Unterschied zwischen Stapel und Warteschlange

Warteschlange:

Warteschlange ist eine lineare Datenstruktur In dieser Struktur können Elemente nur von einer Seite der Liste namens „After“ eingefügt werden und Elemente können nur von der anderen Seite der Liste namens „Before“ gelöscht werden. Die Warteschlangendatenstruktur folgt dem FIFO-Prinzip (First In First Out), d. h. das erste in die Liste eingefügte Element ist das erste aus der Liste gelöschte Element. Das Einfügen eines Elements in die Warteschlange wird als Enqueuing-Vorgang bezeichnet, und das Löschen eines Elements wird als Dequeuing-Vorgang bezeichnet.

In der Warteschlange verwalten wir immer zwei Zeiger, ein Zeiger zeigt auf das Element, das auf dem ersten Zeiger eingefügt wurde und sich noch in der Liste befindet, die durch den vorherigen Zeiger dargestellt wird, und der andere Zeiger zeigt auf das Element, das auf dem eingefügt wurde letzter Zeiger Das Element wird später durch einen Zeiger dargestellt.

Das Diagramm der Warteschlange ist wie folgt:

Datenstrukturen: Unterschied zwischen Stapel und Warteschlange

Unterschied zwischen Stapel und Warteschlange

堆栈 队列
堆栈基于LIFO原则,即最后插入的元素是列表中的第一个元素。 队列基于FIFO原则,即插入第一个元素,是从列表中出来的第一个元素。
堆栈中的插入和删除仅发生在名为top的列表的一端。 队列中的插入和删除是从列表的相反端进行的。插入发生在列表的后面,删除从列表的前面进行。
插入操作称为推送(push)操作。 插入操作称为入队操作。
删除操作称为弹出(pop)操作。 删除操作称为出列操作。
在堆栈中,我们只维护一个访问列表的指针,称为top,它始终指向列表中的最后一个元素。 在队列中,我们维护两个指针来访问列表。前指针始终指向插入列表中的第一个元素并且仍然存在,后指针始终指向最后插入的元素。


Das obige ist der detaillierte Inhalt vonDatenstrukturen: Unterschied zwischen Stapel und Warteschlange. 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