棧和佇列 2鏈棧

2021-10-02 05:51:02 字數 836 閱讀 5855

@adrian

鏈棧元素入棧

例如,將元素 1、2、3、4 依次入棧,等價於將各元素採用頭插法依次新增到鍊錶中,每個資料元素的新增過程如圖 2 所示:

鏈棧元素出棧

例如,圖 2e) 所示的鏈棧中,若要將元素 3 出棧,根據"先進後出"的原則,要先將元素 4 出棧,也就是從鍊錶中摘除,然後元素 3 才能出棧,整個操作過程如圖 3 所示:

鏈棧完整**:

#include

#include

//鍊錶中的結點的結構

typedef

struct linestacklinestack;

//stack為當前的鏈棧,a表示入棧元素

linestack *

push

(linestack*stack,

int a)

//棧頂元素出鏈棧的實現函式

linestack*

pop(linestack * stack)

else

free

(p);

}else

return stack;

}int

main()

輸出結果

棧和佇列6 鏈棧

include using namespace std typedef int qelemtype 資料型別 typedef struct qnode qnode,queueptr 結點型別 typedef struct linkqueue 結點指標型別 1.初始化 bool initqueue l...

演算法設計 鏈棧和鏈佇列 鏈棧和鏈佇列的實現

1.鏈佇列。利用帶有頭結點的單鏈表來實現鏈佇列,插入和刪除的複雜度都為o 1 include include typedef struct qnode qnode typedef struct linkqueue linkqueue void initialize linkqueue linkque...

3 鏈棧和鏈佇列

鏈棧 1 include2 using namespace std 3struct node 7enum error 8class stack 22 初始化 棧頂指標置為空,計數變數設定為0 23 stack stack 2728 29 判斷棧是否為空 count 0 top null 30 31b...