資料結構佇列

2021-09-11 02:13:26 字數 3001 閱讀 8720

#include

#include

#define maxsize 100

typedef

struct

//定義順序隊結構體

sqqueue;

void

initqueue

(sqqueue *

&q)//初始化順序隊 initiate 英[ɪˈnɪʃieɪt] 開始, 創始,開闢

void

destroyqueue

(sqqueue *

&q)//銷毀順序隊 destroy [dɪˈstrɔɪ]殺死; 破壞,摧毀;

bool queueempty

(sqqueue *

&q)//判斷是否為空 empty[ˈempti]空的,空虛的,空洞的;

bool enqueue

(sqqueue *

&q,int e)

//進佇列

bool dequeue

(sqqueue *

&q,int

&e)//出佇列

由於順序隊指標front和指標rear都是累加增1的,會出現假溢位的情況,故出現了迴圈佇列。

#include

#include

#define maxsize 100

typedef

struct

//定義順序隊結構體

sqqueue;

void

initqueue

(sqqueue *

&q)//初始化順序隊 initiate 英[ɪˈnɪʃieɪt] 開始, 創始,開闢

void

destroyqueue

(sqqueue *

&q)//銷毀順序隊 destroy [dɪˈstrɔɪ]殺死; 破壞,摧毀;

bool queueempty

(sqqueue *

&q)//判斷是否為空 empty[ˈempti]空的,空虛的,空洞的;

bool enqueue

(sqqueue *

&q,int e)

//進佇列

bool dequeue

(sqqueue *

&q,int

&e)//出佇列

也可以只使用front指標,並用佇列中元素的個數來代替隊尾指標:

#include

#include

#define maxsize 100

typedef

struct

//定義順序隊結構體

sqqueue;

void

initqueue

(sqqueue *

&q)//初始化順序隊 initiate 英[ɪˈnɪʃieɪt] 開始, 創始,開闢

void

destroyqueue

(sqqueue *

&q)//銷毀順序隊 destroy [dɪˈstrɔɪ]殺死; 破壞,摧毀;

bool queueempty

(sqqueue *

&q)//判斷是否為空 empty[ˈempti]空的,空虛的,空洞的;

bool enqueue

(sqqueue *

&q,int e)

//進佇列

bool dequeue

(sqqueue *

&q,int

&e)//出佇列

佇列也可以使用鏈式儲存結構:

#include

#include

#define maxsize 100

typedef

struct qnode

datanode;

typedef

struct

linkqunode;

void

initqueue

(linkqunode *

&q)//初始化 initiate 英[ɪˈnɪʃieɪt] 開始, 創始,開闢

void

destroyqueue

(linkqunode*

&q)//銷毀 destroy [dɪˈstrɔɪ]殺死; 破壞,摧毀;

free

(pre);}

free

(q);

}bool queueempty

(linkqunode *

&q)//判斷是否為空 empty[ˈempti]空的,空虛的,空洞的;

bool enqueue

(linkqunode *

&q,int e)

//進佇列

return true;

}bool dequeue

(linkqunode *

&q,int

&e)//出佇列

intmain()

照著書上敲了乙個習題

實現對一串數,先出隊乙個列印出來,再出隊乙個,把該元素放到佇列最後,直至隊列為空。雖然很簡單,,但是自己敲得時候遇到了一些小問題,,找一下毛病。

出現問題的原因:

1、當然是不細心了。。

2、比如說當陣列作為形參傳入函式時,哪怕你的形參是a,到了函式內部,他只是把它當做乙個指標,你要是想進行a[1],編譯器不會知道你的意思,所以正確的做法是,直接寫出位址,再 *(a+i),即可。

在這裡插入**片

```void

number

(int

*a,int n)

while(!

queueempty

(q))}}

intmain()

;number

(a,8);

system

("pause");

return0;

}

資料結構 佇列

一 佇列的迴圈陣列實現。1 初始化 空佇列。令rear front 0。2 入佇列 約定rear指向佇列尾元素的下乙個位置。入佇列時,先判斷佇列是否已滿,而後將array rear x 然後rear 3 出佇列 約定front指向佇列的首元素位置。出佇列時,先判斷佇列是否為空,而後返回隊首元素re ...

資料結構 佇列

資料參考自 資料結構c 語言描述 佇列是一種先進先出的資料結構,這與棧正好相反。下例是簡單的queue實現 queue.h檔案 ifndef queue h define queue h include include 資料元素結構 自定義 struct datatype 佇列元素最大數 const...

資料結構 佇列

code for fun created by dream whui 2015 1 25 include stdafx.h include include using namespace std define true 1 define false 0 define ok 1 define erro...