對於迴圈佇列區分是隊滿還是隊空,
有2種解決方法
1.少用1個元素
判空條件:front=rear=0,
判滿條件:(q.rear+1)
% maxsize==q.front;
入棧:base[rear++
]=e; 出棧:e=base[front++
];
****************************************==
本篇結構:
#include"pch.h"
#include
#define maxsize 200
//迴圈佇列最大長度
using
namespace std;
typedef
int qelemtype;
//資料型別
typedef
struct
sqqueue;
//1.初始化,隊空條件:front=rear=0
bool
initqueue
(sqqueue &q)
//解決假溢位問題,1,少用乙個元素,判斷滿的條件:(q.rear+1)% maxsize==q.front 2.設定標誌位(暫未定)
//2.入列
bool
enqueue
(sqqueue & q,qelemtype e)
//3.隊長度
intqueuelength
(sqqueue q)
//4.出佇列,刪除頭元素
bool
dequeue
(sqqueue &q, qelemtype &e)
//5.取頭元素
qelemtype gettop
(sqqueue q)
//6.遍歷
void
showqueue
(sqqueue q)
}
int
main()
cout <<
"棧頂元素為"
<<
gettop
(s)<< endl;
cout <<
"棧所有元素為"
<< endl;
showqueue
(s);
cout <<
"棧長度為"
<<
queuelength
(s)<< endl;
//出棧if(
dequeue
(s, e)
) cout <<
"移除的頭元素是"
<< e
"棧空"
<< endl;
cout <<
"棧剩下所有元素為"
<< endl;
showqueue
(s);
cout <<
"棧長度為"
<<
queuelength
(s)<< endl;
}
棧和佇列 3順序佇列
adrian 由於順序佇列的底層使用的是陣列,因此需預先申請一塊足夠大的記憶體空間初始化順序佇列。除此之外,為了滿足順序佇列中資料從隊尾進,隊頭出且先進先出的要求,我們還需要定義兩個指標 top 和 rear 分別用於指向順序佇列中的隊頭元素和隊尾元素,如圖 1 所示 由於順序佇列初始狀態沒有儲存任...
使用陣列模擬佇列 迴圈佇列和棧
在一些考試題中以及筆試面試的過程中,在需要使用stack和queue的時候,可能被要求不能使用stl中相關的庫函式,也就意味著我們需要使用純c進行程式設計。但是如果在考試中或者筆試面試中,為了要使用棧和佇列,而去寫乙個完整的資料結構是比較大費周章,況且在時間上也不一定允許,因此,使用陣列來模擬棧和佇...
迴圈佇列和佇列
描述 根據給定的空間構造順序迴圈佇列,規定隊滿處理方法為少用乙個元素空間。例如,給定5個元素空間構造迴圈佇列,則只能存放4個元素。試根據入隊及出隊操作判斷佇列最後的元素存放情況,並輸出最後佇列中的元素值,即完成給定入隊及出列操作後一次性全部出隊的元素值。要求採用順序佇列完成。輸入 輸入的第一行為乙個...