資料結構 佇列

2021-10-05 15:10:49 字數 1681 閱讀 4104

initqueue

(&q)

:queueempty

(q):

enqueue

(&q,x)

:dequeue

(&q,

&x):

gethead

(q,&x):

clearqueue

(q,&x)

:

#define maxsize 50

typedef

struct

sqqueue;

佇列的順序儲存:

q.front==q.rear==0;

進隊操作:先判斷佇列是否滿了。如果沒滿,送到隊尾,再將隊尾的指標加一;

出隊操作:先判斷隊是否為空,隊不空時候,先取出隊頭元素,再將隊頭指標加一;

隊滿:無法實現,如果說等於q.rear==maxsize;這樣會出現溢位。

解決溢位;採用迴圈佇列

迴圈佇列:

初始時候:q.front=q.rear=0;

出隊:q.front=

(q.front+1)

%maxsize。

進隊:q.rear=

(q.rear+1)

%maxsize;

佇列長度:(q.rear+maxsize-q.front)

%maxsize;

犧牲乙個單元:

隊滿條件:(q.rear+1)

%maxsize==q.front;

隊空條件:q.front==q.rear

佇列中元素的個數:(q.rear-q.front+maxsize)

%maxsize

迴圈佇列的基本操作:

初始化:

void

initqueue

(sqqueue &q)

判斷空:

bool isempty

(sqqueue q)

入隊:

bool enqueue

(sqqueue &q,elemtype x)

出隊:

bool dequeue

(sqqueue &q,elemtype &x)

typedef

struct

linknode;

typedef

struct

linkqueue;

基本操作:

void

initqueue

(linkqueue &q)

bool isempty

(linkqueue q)

入隊:

viod enqueue

(linkqueue &q,elemtype x)

出隊;

bool dequeue

(linkqueue &q,elemtype &x)

資料結構 佇列

一 佇列的迴圈陣列實現。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...

資料結構 佇列

code for fun created by dream whui 2015 1 25 include stdafx.h include include using namespace std define true 1 define false 0 define ok 1 define erro...