①佇列是一種操作受限的線性表
②佇列只允許在一端進行插入(即入隊),另一端進行刪除(即出隊);隊尾進,對頭出(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...