佇列的應用(queue)
阿新 • • 發佈:2019-01-01
佇列是一種先進先出的資料結構
理解為食堂打飯,先排隊的人先打到
【注意】
佇列總是從隊尾加入元素,而從隊首移除元素,並且滿足先進先出的規則
一般來說
需要一個隊首指標front來指向隊首元素的前一個元素
而使用一個隊尾指標rear來指向隊尾元素
當使用陣列來實現佇列時,隊首指標front和隊尾指標rear為int型變數
(陣列下標從0開始)
而當使用連結串列來實現佇列時
則為int*型變數的指標
常規操作
①清空(clear)
使用陣列來實現佇列時,初始狀態為front=-1,rear=-1
void clear()
{front=rear=-1;}
②獲取佇列內元素個數
rear-front
③判空
front=rear
④入隊(push)
void push(int x)
{q[++rear]=x;}
⑤出隊(pop)
void pop(){front++;}
⑥取隊首元素(get_front)
int get_front()
{return q[front+1];}
⑦取隊尾元素(get_rear)
int get_rear()
{return q[rear];}
與棧相同,出隊操作和取隊首、隊尾元素操作必須在佇列非空情況
可以用while迴圈反覆pop出元素直到佇列為空
或者直接重新定義一個佇列以實現佇列的清空
知識點來自於《演算法筆記》