3 鏈棧和鏈佇列

2022-09-01 03:33:10 字數 1466 閱讀 6205

鏈棧:

1 #include2

using

namespace

std;

3struct

node;

7enum

error;

8class

stack;

22/*

初始化:棧頂指標置為空,計數變數設定為0

*/23

stack::stack()

2728

/*29

*判斷棧是否為空:count=0||top=null

30*/

31bool stack::empty()const

3435

/*36

*取棧頂元素的實現,若棧不為空,返回棧頂元素的值,否則返回出錯資訊

37*/

38int stack::get_top(int &x)const

4344

/*45

*入棧46

*/47

int stack::push(const

intx)

5556

/*57

出棧58

*/59

intstack::pop()

6869 stack::~stack()

7273

int xchg(int

n,stack s)

81while(s.empty()!=true

)86 cout<87return0;

88}89int

main()

9095

鏈佇列:

1 #include2 #include3

using

namespace

std;45

enum

error;67

struct

node;

1112

class

queue;

2526 queue::queue()

3536

bool queue::empty()const

4142

int queue::get_front(int &x)const48}

4950

int x)

5960

int queue::serve()

69if(front->next==null)rear=front;//

如果刪除的是最後乙個結點,尾指標rear指向了乙個已經刪除的節點

70return

success;71}

7273 queue::~queue()

7778

intmain()

97 cout<<1

輸出當行中的子最後乙個元素1並換行

);99

}100

return0;

101 }

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

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

鏈棧與鏈佇列

首先,我們先搞清楚,棧的原理就是現金後出,譬如往箱子裡面放球,最先放進去的最後拿出來。下面給一下我臭臭的 include include 定義結構體 struct node int main q p 列印建立的鍊錶 t head next while t null 鏈棧 先入後出,因此新入的數應該在...

棧和佇列5 鏈佇列

在鏈佇列中,head指向頭節點,但是實際的head是head指向的節點,即第乙個有元素的節點 tail在迴圈佇列中指向空位置,但是在鏈佇列中,tail指向最後乙個節點 和鏈棧一樣採取兩個結構體的形式 typedef struct queuenode qqueuenode,queueptr typed...