佇列順序儲存

2021-10-06 07:23:31 字數 1774 閱讀 3023

#ifndef status_h

#define status_h

#define ok 1

#define error 0

#define false -1

#define true 1

typedef

int elemtype;

typedef

int status;

#endif

#ifndef stack_h

#define stack_h

#include

"status.h"

#include

#define maxsize 20

typedef

struct

dl;status initdl

(dl *d)

;//初始化佇列

status push

(dl *d,elemtype *e)

;//插入元素到對尾

status pop

(dl *d,elemtype *e)

;//輸出對頭元素

status isempty

(dl *d)

;//判斷佇列是否為空

status visit

(dl*d)

;#endif

```cpp

#include

"status.h"

#include

#include

"stack.h"

status initdl

(dl *d)

status push

(dl *d,elemtype *e)

d->base[d-

>rear]

=*e;

d->rear =

(d->rear +1)

%maxsize;

return ok;

}status pop

(dl *d,elemtype *e)

*e=d-

>base[d-

>front]

; d-

>front=

(d->front+1)

%maxsize;

return ok;

}status isempty

(dl *d)

```cpp

#include

#include

"stack.h"

intmain()

t=push

(d,&e);if

(t==ok)

printf

("入隊成功\n");

else

printf

("入隊錯誤\n");

t=isempty

(d);

if(t==true)

printf

("隊列為空\n");

else

printf

("佇列不為空\n");

t=pop(d,

&e);

if(t==ok)

t=isempty

(d);

if(t==true)

printf

("隊列為空\n");

else

printf

("佇列不為空\n");

}

佇列 順序儲存

佇列是一種先進先出的線性表,允許插入的一端稱為隊尾,允許刪除的一方叫做隊頭。佇列和棧一樣,有自己的規則,使用佇列儲存資料時,只允許從一端進行插入,另一端進行刪除。需要遵循 先進先出 的規則。按照以往的做法,頭指標都在下標0的位置,那也就意味著,佇列的所有元素都要向前挪動,以保證佇列的隊頭,可是有時想...

佇列 順序儲存結構,迴圈佇列

為什麼小甲魚上節課說佇列的實現上我們更願意用鏈式儲存結構來儲存?我們先按照應有的思路來考慮下如何構造佇列的順序儲存結構,然後發掘都遇到了什麼麻煩。我們假設乙個佇列有n個元素,則順序儲存的佇列需建立乙個大於n的儲存單元,並把佇列的所有元素儲存在陣列的前n個單元,陣列下標為0的一端則是隊頭。no pic...

關於順序儲存結構佇列

佇列是一種先進先出的線性表 fifo 出佇列的那一端叫做隊頭,入佇列的那一端叫做隊尾。作為線性表,同樣也有各種埠操作,不同的是插入資料只能在隊尾進行,刪除資料只能在隊頭進行。同棧,佇列也有兩儲存方式,先來看看順序佇列。順序隊列入隊方式很簡單,就是在隊尾追加乙個元素,不需要移動任何元素。而出隊方式就只...