-
佇列
鎖定
佇列(隊列),又稱 queue ,是先進先出(FIFO, First-In-First-Out)的線性排列。
- 中文名
- 佇列
- 外文名
- queue
- 別 名
- 隊列
- 概 念
- 先進先出的線性排列
佇列佇列含義
佇列(隊列),又稱 queue ,是先進先出(FIFO, First-In-First-Out)的線性排列。在具體應用中通常用陣列或鏈結串行來實現。佇列只允許在後端(稱為rear)進行插入操作,在前端(稱為front)進行刪除操作。
佇列的操作方式和堆棧類似,唯一的區別在於佇列只允許新數據在後端進行加入。
佇列陣列佇列
#include<stdio.h>
#include<stdlib.h>
/*佇列資料結構*/
struct Queue
{
int Array[10];//陣列空間大小
int head;//前端(front)
int tail;//後端(rear)
int length;//佇列長度
};
/*資料加入佇列*/
void EnQueue(Queue *Queue1,int x)
{
Queue1->Array[Queue1->tail]=x;
if(Queue1->tail==Queue1->length)
{
Queue1->tail=1;
}
else
{
Queue1->tail=Queue1->tail+1;
Queue1->length=Queue1->length+1;//這行邏輯上有問題
}
}
/*資料移出佇列*/
int DeQueue(Queue *Queue1)
{
int x=Queue1->Array[Queue1->head];
if(Queue1->head==Queue1->length)
{
Queue1->head==1;
}
else
{
Queue1->head=Queue1->head+1;
}
return x;
}
/*佇列操作*/
int main()
{
struct Queue *Queue1=(struct Queue *)malloc(sizeof(struct Queue));//建立資料結構
Queue1->length=10;//新增長度
Queue1->head=0;//必須要先初始化
Queue1->tail=0;//必須要先初始化
EnQueue(Queue1,5);//將5放入佇列
EnQueue(Queue1,8);//將8放入佇列
EnQueue(Queue1,3);//將3放入佇列
EnQueue(Queue1,2);//將2放入佇列
printf("%d ",DeQueue(Queue1));//輸出佇列(5)
printf("%d ",DeQueue(Queue1));//輸出佇列(8)
printf("%d ",DeQueue(Queue1));//輸出佇列(3)
system("pause");
}
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:6次歷史版本
- 最近更新: thereforenay