大學的課程使用的是c語言
佇列是一種特殊的
線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。
qnode *p;
p=(qnode *)malloc(sizeof(qnode));
p->data=e;
p->next=null;
if (q->rear==null) //若鏈隊為空,則新節點是隊首節點又是隊尾節點
q->front=q->rear=p;
else
}上面的函式完成元素e的如佇列操作,在實現的時候首先是要if語句判斷當前所操作的佇列是否為空。為空,則只需將佇列的頭(q->front)指向新建的節點p;非空,則將隊尾(q->real->next)指向新建的節點p,再修改隊尾指標
bool queuedelete(lqueue *&q,elemtype &e) //出隊
上面的函式完成的是出佇列操作,在實現的時候先判斷佇列是否為空。為空;丟擲為空提示;非空;先將隊頭的元素(q->front->data)賦值給待定的變數e,lqnone型的指標型變數*p指向佇列的隊頭(q->front),隊頭節點(q->front)指向隊頭節點的下乙個節點(q->front->next),此時隊頭元素已經脫鏈,如果出隊的是最後乙個元素時,還應將隊尾(q->real)置為空(null),最後再釋放*p的記憶體
我的實驗報告裡面的演算法分析也只寫了佇列的出隊和入隊操作,個人感覺佇列的出隊和入隊操作是佇列不同於線性表的地方
佇列的入隊和出隊操作
讓我們跟著課程佇列的特點。好比我們生活中也會發生的排隊,先排隊的人先得到服務,先走出佇列,後面來的人後得到服務,所以它排在末尾 我們以順序隊列為式,也就是說佇列的元素存放的都是連續的單元也就是說看起來rear 指 針已經指向末端但是其實前面還有空間可以存放元素,但是已經放不進去了。我們讓front ...
隊的定義 入隊和出隊
隊是限定在表的一端進行插入另一端進行刪除的線性表。特點 先進先出 fifo 後進後出 lilo 包含順序隊和鏈隊 順序隊 front rear 0表示隊空,入隊rear 1,出隊 front 1 順序隊的容量定義為m。但是當front rear m時,會導致假溢位,因為此時隊裡沒有元素,卻被認為隊滿...
鏈佇列的入隊 出隊
test demo.cpp 定義控制台應用程式的入口點。include stdafx.h include stdio.h include windows.h define queuesize 100 假定預分配的佇列空間最多為100個元素 typedef char datatype 假定佇列元素的資...