在鏈佇列中,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...