資料結構 佇列queue

2021-09-29 03:15:13 字數 1384 閱讀 9210

佇列:

佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。

佇列是有序集合,新新增的一端為隊尾,另一端為隊頭,當乙個元素從隊尾進入佇列時,一直向隊首移動,直到它成為移除的元素為止。這種排序是先進先出fifo,生活中常見的例子就是去學校食堂打飯,人多時候需要排隊,排隊在前面的同學先打飯,新來的同學在後面排隊,知道前面同學都打完飯,才輪到它。

1、佇列(queue)是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。

2、與棧相反,佇列是一種先進先出的線性表.

3、實現乙個佇列同樣需要順序表或鍊錶作為基礎。

**實現:

#define _crt_secure_no_warnings

#include "iostream"

using namespace std;

typedef int datatype;

typedef struct node

queuenode;

typedef struct queue

linkqueue;

linkqueue* creatqueue()

temp->head = null;

temp->tail = null;

return temp;

}//進隊,只能從隊尾進

int enterqueue(linkqueue *mqueue,datatype *data)

newnode->data = *data;

newnode->next = null;

if (null == mqueue->tail) //判斷queue是否為空

else

return 0;

}//出佇列,只能從隊頭出

int quitqueue(linkqueue *mqueue, datatype *data)

else }

//銷毀佇列

int destroyqueue(linkqueue *mqueue)

} delete mqueue;

return 0;

}int main()

; int i = 0;

datatype data;

for (i = 0; i < 5;++i)

while (1)

else

}system("pause");

return 0;

}

資料結構 佇列 queue

佇列 就是生活中的排隊,因此排隊是先到先得,也是先離開隊伍,因此佇列也是採用的先進先出的概念 fifo,慢慢想想作業系統裡面是不是也用到fifo,自己去查吧 到底有沒有 如何能夠準確的定位是先進先出呢,因此採用的就是頭指標front和尾指標rear,通常這兩個指標是封裝成乙個鏈隊 注意front與r...

資料結構 佇列 queue

佇列 queue 是一種採用先進先出 fifo 策略的抽象資料結構,它的想法來自於生活中排隊的策略。顧客在付款結賬的時候,按照到來的先後順序排隊結賬,先來的顧客先結賬,後來的顧客後結賬。同棧的實現一樣,佇列的實現也有陣列實現和鍊錶實現兩種方式。先來看看陣列實現的方法。棧使用top變數記錄棧頂的位置,...

資料結構之佇列(Queue)

佇列,顧名思義,也就是一條隊伍,進入隊伍的時候,只能從隊尾排隊,離開隊伍的時候,只能從隊首離開。佇列也有陣列實現和鏈式實現。用一般陣列實現佇列的時候,入隊,則在隊尾插入乙個元素,出隊,則將隊首的元素出隊。那麼,由於陣列的長度是固定的,入隊只能從隊尾入隊,因此經常性的出隊會使得隊首越來越靠近隊尾,隊首...