距離上一次更新隔了也有15天之久了,在家裡的這段時間真的過得蠻快的,但是也是昨天跟今天一樣,今天跟明天一樣,迴圈往復著;佇列的定義:
佇列是操作受限的線性表,佇列的插入在隊尾,佇列的刪除在隊頭,
佇列是先進先出的線性表
1、什麼是佇列的上溢現象?一般有幾種解決方法,試簡述之?
答:…當佇列中還有剩餘空間,入隊時卻出現隊滿的情況,一般是因為隊滿條件設定不合理造成的,稱之為「假溢位」。
總共有三種方法解決佇列的假溢位:
方法一:增設乙個儲存佇列元素個數的變數num,當num=0時隊空,當num=maxqsize 時為隊滿;
方法二:設定乙個flag標誌,當front =rear且flag =0時,則隊空,當front=rear且flag = 1時,則隊滿。
方法三:採取少用乙個儲存單元的方式,引入迴圈佇列,則隊滿時佇列中還剩乙個空閒單元,即隊空條件:front == rear,隊滿條件:(rear+1) % maxqsize == front,佇列長度為(rear-front+maxqsize) % maxqsize。
順序佇列抽象資料型別定義:
typedef
struct
//sqqueue 順序隊的型別
1.順序佇列的要素
隊空條件:q.front == q.rear
隊滿條件:q.front == maxqsize -1(陣列的最大下標)
隊滿條件:也可以是q->rear==q->front= =n
其實和棧的棧空棧滿條件很相似,
棧空是s.top == -1;
棧滿是s.top == maxsize -1;
順序隊的初始化
void
initqueue
(sqqueue &q)
順序隊的入隊enqueue(&q,e):
void
enqueue
(sqqueue &q,qelemtype e)
順序隊的出隊dequeue(&q,&e):
void
dequeue
(sqqueue &q,qelmetype &e)
銷毀佇列,判斷隊空。
void
destroyqueue
(sqqueue &q)
bool
queueempty
(sqqueue &q)
2.迴圈佇列的三要素
隊空條件:q.front == q.rear
隊滿條件:(q.rear+1) % maxqsize == q.front
佇列長度:(q.rear-q.front+maxqsize) % maxqsize
入隊 rear指標迴圈增1:q.rear = (q.rear+1) % maxqsize
出隊 front指標迴圈增1:q.front = (q.front+1) % maxqsize
//一般情況下,迴圈佇列採用隊頭front指向當前第乙個元素的位置,rear指向最後乙個元素的下乙個位置。
迴圈佇列的初始化
void
initqueue
(sqqueue &q)
迴圈佇列的入隊、出隊、求佇列長度:
這裡入隊和出隊統一按照先移動隊頭或隊尾指標,然後再入隊或出隊元素。
status enqueue
(sqqueue &q,qelemtype q)
status dequeue
(sqqueue &q,qelemtype &q)
intlengthqueue
(sqqueue &q)
3.鏈式佇列的要素
隊空的條件為:q.rear->next == null
和鏈式棧一樣,不考慮隊滿的情況
鏈式佇列的入隊:
①生成新結點存放元素e,由p指標指向。
②將結點p從隊尾插入,再由隊尾指標指向它。
status enqueue
(linkqueue &q,qelmetype e)
return ok;
}
status dequeue
(linkqueue &q,elemtype &e)
《資料結構打卡》第10天 排序篇
各種排序的說明 各種排序比較次數 插入 排序 最少n 1 最多n n 1 2 冒泡 排序 最少n 1 最多n n 1 2 選擇 排序 最少最多為n n 1 2 快速 排序 最少nlog2n 最多n2 歸併 排序 nlog2n 2n 1 logn 一 例如 關鍵字 45 80 48 40 22 78 ...
《資料結構打卡》第8天 自定義演算法篇
0 編寫乙個演算法,要求將奇數最先輸出,偶數最後輸出 15分 使用棧來操作。演算法思想 1.假設陣列arr中的值為,分別用兩個棧來輸出 2.奇數棧用於儲存,偶數棧用於儲存 3.最後用元素e分別從兩個棧中取出元素奇數元素在前,偶數元素在後的乙個序列,輸出為 void fun elemtype arr,...
資料結構(佇列實現篇)
在資料結構與演算法中,佇列queue是一種受限的線性儲存結構,特殊之處在於它只允許在表的前端front進行刪除操作,而在表的後端rear進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。遵循先進先出fifo的規則。佇列結構示意圖 佇列結構使用 ...