佇列 順序儲存 基本操作

2021-10-06 01:47:29 字數 2072 閱讀 1921

①佇列是一種操作受限的線性表

②佇列只允許在一端進行插入(即入隊),另一端進行刪除(即出隊);隊尾進,對頭出(first in first out ,fifo)

//初始化佇列,構造乙個空的佇列

void

initqueue

(sqqueue &q)

;//判斷佇列是否為空

bool queueisempty

(sqqueue q)

;//入隊操作

void

enqueue

(sqqueue &q,

int value)

;//出對操作

intoutqueue

(sqqueue &q)

;//讀隊頭元素

intgethead

(sqqueue q)

;

/**

* 順序儲存佇列的基本操作

*/#include

#define maxsize 10

//定義佇列中元素的最大個數

typedef

struct

sqqueue;

/** * 初始化佇列,構造乙個空的佇列

*/void

initqueue

(sqqueue &q)

/** * 判斷佇列是否為空

*/bool queueisempty

(sqqueue q)

else

}/**

* 入隊操作

* @param q

* @param value 入隊的值

*/void

enqueue

(sqqueue &q,

int value)

q.data[q.rear++

]= value;

//隊尾指標指向新入隊的資料

q.length++

;//入隊,佇列長度+1

}/**

* 出隊操作,返回出隊元素

* @param q

*/int

outqueue

(sqqueue &q)

int x = q.data[q.front++];

//要出隊的元素

q.length--

;//出隊,長度-1

return x;

}/**

* 讀隊頭元素,並返回

* @return

*/int

gethead

(sqqueue q)

/** * 建立完整佇列

* @param q

*/void

creatqueue

(sqqueue &q)

scanf

("%d"

,&x);}

}/**

* 列印

* @return

*/void

print

(sqqueue q)

printf

("佇列length %d \n"

,q.length);}

intmain()

--

----

--建立完整佇列(入隊)--

-------

1234

569999

----

----列印--

-------

佇列中儲存的值 1

佇列中儲存的值 2

佇列中儲存的值 3

佇列中儲存的值 4

佇列中儲存的值 5

佇列中儲存的值 6

佇列length 6

----

----獲取隊頭元素--

-------

隊頭元素 -1--

----

--出隊--

-------

出隊元素 -1--

----

--獲取隊頭元素--

-------

隊頭元素 -

2

順序儲存棧的基本操作:

佇列之順序隊基本操作

佇列是一種操作受限的線性表,其限制為僅允許在表的一端插入,在表的另一端進行刪除。進行刪除的一端稱為隊頭或隊首,插入元素稱為入隊,刪除元素稱為出隊。在順序隊 q中,隊空條件為q front q rear。隊滿條件為q rear maxsize 1.入隊操作為先將隊尾指標增加1,然後把e放在隊尾。出隊操...

順序迴圈佇列的基本操作

名稱 順序迴圈佇列的基本操作 說明 此處說明以下有關順序迴圈佇列的判斷空,判斷滿的問題。此處採用的是少用乙個儲存元素。此外,還可以採用增加乙個標誌位tag,即指示fro rear是因為空還是因為滿。還有可以增加乙個q.size屬性來判斷是否達到空或者滿的狀態。順序佇列的儲存結構 typedef st...

順序佇列基本操作的實現

順序佇列和前面的順序表一樣,相當於乙個陣列,不同的是它的有效區間,當陣列走到最大時,又會從頭開始,這裡用head 和tail兩個下標來表示頭和尾,即當tail到達size時,tail又從0開始,head也是同樣的道理 如下 seqqueue.h pragma once define seqqueue...