佇列的基本操作(順序結構)C C

2021-07-24 14:01:49 字數 1331 閱讀 8960

順序結構的佇列,大多情況下對空間的申請比較死,想了個辦法:用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 是一種運算受限的線性表,僅允許在表的一端進行插入,而在表的另一端進行刪除。進行插入的一端叫做隊尾,進行刪除的一端叫做隊頭。佇列的操作 向佇列中插入新元素稱為進隊或入隊,新元素進隊後就成為新的隊尾元素 從佇列中刪除元素稱為出隊或離隊,元素出隊後,其後繼元素就成為隊首元素 從佇列的基本...