順序結構的佇列,大多情況下對空間的申請比較死,想了個辦法:用string形式來儲存佇列元素,對於new的方式,我也實在想不出夠準確的申請方法。
c語言式:
#include #include using namespace std;
struct queue
;void initqueue(queue *q)
bool isfull(queue *q)
char pop(queue *q)
void push(queue *q,char c)
int isempty(queue *q)
int main()
while(!isempty(&q))
cout<
c++版:
注意!realloc()的作用是對之前用malloc()/calloc()分配的空間修改大小,而不是分配新空間,realloc()修改過的空間位址和之前的相同,除非之前的位址開始的連續空間不如修改後的空間大,中這種情況下,它會在其它地方分配一塊新大小的空間,並將原空間儲存的內容複製到新空間中,然後釋放原空間。
簡單的說,就是這裡應該用malloc()分配新空間,而不是realloc()修改先前分配的空間。
#include #include #include using namespace std;int size = 10;
struct queue
;void initqueue(queue *q)
bool isfull(queue *q)
char pop(queue *q)
void push(queue *q,char c)
}int isempty(queue *q)
int main()
while(!isempty(&q))
cout<
#include #include #include using namespace std;
struct queue
;void initqueue(queue *q)
char pop(queue *q)
void push(queue *q,char c)
int isempty(queue *q)
int main()
while(!isempty(&q))
cout<
主要是,我覺得上面c++的方式能夠省去判滿的步驟
大家有好的辦法的話,可以分享下。
順序迴圈佇列的基本操作
名稱 順序迴圈佇列的基本操作 說明 此處說明以下有關順序迴圈佇列的判斷空,判斷滿的問題。此處採用的是少用乙個儲存元素。此外,還可以採用增加乙個標誌位tag,即指示fro rear是因為空還是因為滿。還有可以增加乙個q.size屬性來判斷是否達到空或者滿的狀態。順序佇列的儲存結構 typedef st...
順序佇列基本操作的實現
順序佇列和前面的順序表一樣,相當於乙個陣列,不同的是它的有效區間,當陣列走到最大時,又會從頭開始,這裡用head 和tail兩個下標來表示頭和尾,即當tail到達size時,tail又從0開始,head也是同樣的道理 如下 seqqueue.h pragma once define seqqueue...
26 順序佇列的基本操作
佇列 queue 是一種運算受限的線性表,僅允許在表的一端進行插入,而在表的另一端進行刪除。進行插入的一端叫做隊尾,進行刪除的一端叫做隊頭。佇列的操作 向佇列中插入新元素稱為進隊或入隊,新元素進隊後就成為新的隊尾元素 從佇列中刪除元素稱為出隊或離隊,元素出隊後,其後繼元素就成為隊首元素 從佇列的基本...