圖一:線性佇列 圖二:環形佇列
一、線性佇列和環形佇列的比較
二、深入了解環形佇列
front隊頭:第乙個元素的下標
隊滿:(rear+1)%n==front
隊空: front==rear
首先,我們要學會定義乙個結構體,這個環形佇列中就包括了資料,front,rear
#define size 10
typedef struct squeue
squeue,*psqueue;
//初始化
void initqueue(psqueue ps)
ps->front = 0;
ps->rear = 0;
}//判滿
static bool isfull(psqueue ps)
//入隊
bool push(psqueue ps,int val)
ps->elem[ps->rear] = val;
ps->rear = (ps->rear+1)%size;
return true;
}//獲取隊頭的值,但不刪除
bool gettop(psqueue ps,int *rtval)
if(rtval != null)
return true;
}//獲取隊頭的值,且刪除
bool pop(psqueue ps,int *rtval)
if(rtval != null)
int *p=ps->front;
ps->front=p->front;
free(p);
return true;
}//判斷隊空
bool isempty(psqueue ps)
return front==rear;
資料結構 佇列(一)
概念簡述 特點 原理實現 時間複雜度分析 佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作 出隊 而在表的 後端 rear 進行插入操作 入隊 進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊首。佇列中 沒有元素時,稱為空佇列。和棧一樣,佇列是一種操作受限制的線性表,...
資料結構 佇列
一 佇列的迴圈陣列實現。1 初始化 空佇列。令rear front 0。2 入佇列 約定rear指向佇列尾元素的下乙個位置。入佇列時,先判斷佇列是否已滿,而後將array rear x 然後rear 3 出佇列 約定front指向佇列的首元素位置。出佇列時,先判斷佇列是否為空,而後返回隊首元素re ...
資料結構 佇列
資料參考自 資料結構c 語言描述 佇列是一種先進先出的資料結構,這與棧正好相反。下例是簡單的queue實現 queue.h檔案 ifndef queue h define queue h include include 資料元素結構 自定義 struct datatype 佇列元素最大數 const...