資料結構與演算法分析之表 棧和佇列 二

2021-09-26 14:02:36 字數 981 閱讀 9120

1.棧的概念

棧(stack)是限制插入和刪除只能在乙個位置上進行的表,該位置是表的末端,叫做棧的頂(top)。對棧的基本操作有push(進棧)和pop(出棧),前者相當於插入,後者則是刪除最後插入的元素。棧有時叫做後進先出(lifo last in first out)表。

2.elementtype

資料結構是討論抽象的資料儲存和演算法的,一種結構中元素的型別不一定是整型、字元型、浮點型或者使用者自定義型別,為了不重複說明,使用過程中用「elementtype」代表所有可能的資料型別,簡單明瞭的概括了整體。在演算法中,除特別說明外,規定elementtype的預設是int型。

4.尾遞迴雖然編譯器可以自己優化,但是最好不要使用尾遞迴。

5.佇列的概念

佇列的基本操作是enqueue(入隊),它是在表的末端(叫做隊尾(rear))插入乙個元素,還有dequeue(出隊),它是刪除(或返回)在表的開頭(叫做隊頭(front))的元素。

6. 棧和佇列的區別

棧的插入和刪除操作都是在一端進行的,而佇列的操作卻是在兩端進行的。

棧是先進後出,佇列是先進先出。

棧只允許在表尾一端進行插入和刪除,佇列只允許在表尾一端進行插入,在表頭一端進行刪除。

7.怎麼理解下圖

本文參考《資料結構與演算法分析-c語言版》

資料結構與演算法分析之表 棧和佇列(一)

1.前驅元,後繼元 對於除空表外的任何表,我們說 adt abstract data type 抽象資料型別 2.鍊錶概念 鍊錶由一系列不必在記憶體中相連的結構組成。每乙個結構均含有表元素和指向包含該元素後繼元的結構的指標。我們稱之為next 指標。最後乙個單元的next指標指向null 該值由c定...

資料結構與演算法之棧和佇列

棧和佇列以及優先佇列是比陣列和其他資料結構更加抽象的結構。主要通過介面對棧 佇列 和優先順序佇列進行定義,這些介面表明通過它們可以完成的操作,而它們的主要實現機制對 使用者來說是不可見的。棧每一次只允許訪問乙個資料項 最後插入的資料項,所以棧又叫先進後出 在這裡用陣列定義乙個棧,如下 public ...

資料結構與演算法之棧和佇列

1.棧 package com.thinkofdatastruct.fourunit public class stackdemo 帶引數的構造方法 public stackdemo int maxsize 加入資料 public void push int data pop移除資料 public ...