前言
與線性表(鍊錶)、棧類似,佇列也有順序儲存和鏈式儲存兩種儲存方法。以順序儲存為例。今天主要講靜態陣列實現佇列的過程。日常生活中,去超市購物,結賬,去售票處買票,都是典型的佇列。
概念
佇列是一種先進先出的資料結構。佇列簡稱隊,只允許在表的尾端進行插入,而在表的首端進行刪除。向佇列中插入元素稱為入隊;刪除元素稱為出隊。
它需要兩個指標,乙個指向隊頭(front),乙個指向隊尾(rear),這樣才能方便地進行入隊或出隊操作。
靜態陣列實現佇列
本文選擇靜態陣列是因為操作簡便,效率高。這正是陣列的優點,接下來實現
#include
#include
#define que_size 10
//最大佇列長度+1 ,實際長度為9
typedef
struct queueinfo
queue;
//判斷佇列是否為滿
intqueueisfull
(queue *queue)
else
//佇列不為滿
return0;
}//判斷佇列是否為空
intqueueisempty
(queue *queue)
else
return0;
}//入隊
intqueueinsert
(queue *queue,
int value)
//出隊
intqueuedelete
(queue * queue,
int*value)
intmain
(int argc,
char
const
*ar**)
輸出結果:
佇列定義說明:
1.隊列為空的條件:
(queue->tail +1)
% que_size == queue->front
2.佇列滿的條件:
(queue->tail+2)
% que_size == queue->front
3.更新頭指標:queue->front =
(queue->front +1)
%que_size;
4.更新尾指標:queue->tail =
靜態陣列實現佇列
include include define queue type int 佇列元素的型別 void creat queue size t size 建立乙個佇列,這只適用於使用動態分配陣列的佇列,鏈式的不 需要,普通陣列實現的佇列在編譯時就已經確定大小 void destroy queue 銷毀乙...
資料結構 靜態陣列實現迴圈佇列
靜態陣列實現迴圈佇列不需要考慮空間的釋放。迴圈佇列的實現主要重點是在兩個指標的比較上。include define maxsize 10 define elemtype int define status int define ok 1 define error 0 typedef struct q...
C語言實現使用靜態陣列實現迴圈佇列
佇列是一種先進先出的的資料結構,我們同樣可以使用陣列 鍊錶等來實現。我們可以在佇列的尾部進行插入元素,在佇列的頭部取出元素。普通的佇列由於空間利用率不高,所以我們一般都用迴圈佇列。迴圈佇列中最重要的的兩個操作就是判斷是否為空和是否已滿。當head tail時,表示隊列為空。當 tail 1 max ...