佇列的基本概念
佇列(queue):也是運算受限的線性表。是一種先進先出(first in first out ,簡稱fifo)的線性表。只允許在表的一端進行插入,而在另一端進行刪除。
隊首(front) :允許進行刪除的一端稱為隊首。
隊尾(rear) :允許進行插入的一端稱為隊尾。
例如:排隊購物。作業系統中的作業排隊。先進入佇列的成員總是先離開佇列。
佇列中沒有元素時稱為空佇列。在空佇列中依次加入元素a1, a2, …,an之後,a1是隊首元素,an是隊尾元素。顯然退出佇列的次序也只能是a1, a2, …,an ,即佇列的修改是依先進先出的原則進行的,如圖所示:
利用一組連續的儲存單元(一維陣列)依次存放從隊首到隊尾的各個元素,稱為順序佇列。
對於佇列,和順序棧相類似,也有動態和靜態之分。本部分介紹的是靜態順序佇列,其型別定義如下:
#include #include #ifndef _list_h
#define _list_h
#define n 100
typedef char datatype;
typedef struct _queue
queue;
//初始化
void initlist(queue *q);
//判斷佇列是否為空
int isempty(queue *q);
//入佇列
void enqueue(queue *q, datatype value);
//出佇列
datatype dequeue(queue *q);
//獲得隊頭元素
datatype gethead(queue *q);
//輸出佇列元素
void printdata(queue *q);
#endif //_list_h
//以上函式的實現
#include "list.h"
//佇列的初始化
void initlist(queue *q)
//判讀佇列是否為空
int isempty(queue *q)
else }
//入佇列
void enqueue(queue *q, datatype value)
else }
//出佇列
datatype dequeue(queue *q)
else }
//獲得隊頭元素
datatype gethead(queue *q)
else }
//輸出佇列元素
void printdata(queue *q)
else }
}
//測試
#include #include "list.h"
int main(void)
else
// for (datatype i = 'a'; i < 'f'; ++i)
//
printf("%c\n", gethead(&q));
printdata(&q);
return 0;
}
佇列的基本操作
include stdafx.h includeusing namespace std typedef struct node typedef struct queue queue insertqueue queue q,char value return q queue deletequeue q...
佇列的基本操作
本程式主要是實現了迴圈佇列的基本操作,包括insert,remove,peek,size等操作 package demo3 class queue 插入操作 public void insert long j quearray rear j 佇列是在隊尾插入 nitems 刪除 public lon...
佇列的基本操作
鏈式儲存 typedef int qelemtype typedef int status 具體資料型別具體定義 typedef struct qnode 佇列結點結構體 qnode,queueptr typedef struct 鏈佇列型別 linkqueue status initqueue l...