棧和佇列5 鏈佇列

2021-10-23 10:25:08 字數 971 閱讀 3009

在鏈佇列中,head指向頭節點,但是實際的head是head指向的節點,即第乙個有元素的節點

tail在迴圈佇列中指向空位置,但是在鏈佇列中,tail指向最後乙個節點

和鏈棧一樣採取兩個結構體的形式

typedef

struct queuenode

qqueuenode,

*queueptr;

typedef

struct linkqueue

linkqueue;

void

initial

(linkqueue *q)

入佇列

操作:新建節點設定好data和next,處理q的tail,處理q的num

void

enque

(linkqueue *q,

int data)

出佇列

操作:得到真正的隊頭的data,處理q的head,處理q的num

int

deque

(linkqueue *q)

q->num--

;delete p;

}else

return ret;

}

gethead

int

gethead

(linkqueue *q)

int

main()

cout<<

deque

(&q)

gethead

(&q)

int i=

1;i<=

100;i++

)return0;

}

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

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...

棧和佇列6 鏈棧

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