靜態陣列實現佇列

2021-09-28 21:35:25 字數 1503 閱讀 9910

前言

與線性表(鍊錶)、棧類似,佇列也有順序儲存和鏈式儲存兩種儲存方法。以順序儲存為例。今天主要講靜態陣列實現佇列的過程。日常生活中,去超市購物,結賬,去售票處買票,都是典型的佇列。

概念

佇列是一種先進先出的資料結構。佇列簡稱隊,只允許在表的尾端進行插入,而在表的首端進行刪除。向佇列中插入元素稱為入隊;刪除元素稱為出隊。

它需要兩個指標,乙個指向隊頭(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 ...