typedef struct{ //鏈式隊列結點
ElemType data;
struct LinkNode *next;
}LinkNode;
typedef struct{
LinkNode *front,*rear; //隊頭和隊尾指針
}LinkQueue; //這時候的隊列有頭節點的front指向頭節點
//入隊
bool Push(LinkQueue &Q,ElemType e)
{
LinkNode *q = (LinkNode*)malloc(sizeof(LinkNode));
q->data = e;
q->next = NULL;
Q.rear->next = q;
Q.rear = q;
}
//出隊
bool Pop(LinkQueue &Q,ElemType &e)
{
if (Q.front == Q.rear)
{
return false; //如果隊列爲空
}
LinkNode *p = Q.front->next;
e = p->data;
Q.front->next = p->next;
if(Q.rear == p)
{
Q.rear = Q.front; //如果隊列中只有一個節點,刪除後爲空
}
free(p);
}
數據結構與算法(9)--鏈式隊列
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.