棧和佇列3 迴圈佇列(少用1位)

2021-10-01 18:56:27 字數 1749 閱讀 3667

對於迴圈佇列區分是隊滿還是隊空,

有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個元素。試根據入隊及出隊操作判斷佇列最後的元素存放情況,並輸出最後佇列中的元素值,即完成給定入隊及出列操作後一次性全部出隊的元素值。要求採用順序佇列完成。輸入 輸入的第一行為乙個...