資料結構 佇列

2021-10-20 19:33:07 字數 2583 閱讀 2301

佇列與棧一樣,是一種線性儲存結構,特點:先進先出;隊尾新增元素,對頭刪除元素

佇列的操作:

入隊:通常命名為push()

出隊:通常命名為pop()

求佇列中元素個數

判斷佇列是否為空

獲取隊首元素

佇列的分類

根據儲存結構劃分:順序儲存結構、鏈式儲存結構

順序儲存結構

特點:事先要確定佇列的大小,不支援動態分配記憶體空間

鏈式儲存結構

特點:可以不需要事先知道佇列的大小,支援動態分配儲存空間,插入和刪除操作比較耗時

**1實現如下:

//迴圈佇列初始化、判空、判滿、入隊、出隊、輸出佇列元素

//迴圈佇列計算佇列長度:(tail-head+maxsize) % maxsize

#include

#include

#define maxsize 6

using

namespace std;

typedef

struct node queue1;

//佇列初始化

void

initqueue

(queue1 *q)

//判空

bool

isempty

(queue1 *q)

//判滿

bool

isfull

(queue1 *q)

else

return

false;}

//入佇列 隊尾入 入隊元素e

intenqueue

(queue1 *q,

int e)

else

}//出佇列 隊頭出 輸出隊頭元素e

intdequeue

(queue1 *q,

int*e)

else

}// if (isempty(q1))

// else

else

}return1;

}int

main()

**2實現如下:

#include

#include

#define maxsize 5

using

namespace std;

//佇列的順序儲存結構及實現

typedef

struct lnode* queue1;

//定義乙個具有 lnode結構的佇列

typedef

int queuedata;

//queuedata是int的別名

//定義佇列結構體

struct lnode

;//初始化佇列

void

initlnode

(queue1 q1)

//判斷佇列是否是滿的

bool

isfull

(queue1 q1)

//判空

bool

isempty

(queue1 q1)

//隊尾插入元素

bool

insertq

(queue1 q1, queuedata x)

else

}//隊頭刪除元素,用e返回其值

intdeleteq

(queue1 q1, queuedata *e)

else

}int

main()

**1與**2的實現的區別是結構體定義方式不同,在**2中,在main()函式內需要單獨申請記憶體空間,如果不申請,會一直報錯:區域性變數q未初始化。

另外一種直接呼叫的方式:

#include

#include

using

namespace std;

intmain()

node,

*queueptr;

typedef

struct

linkqueue;

//建立乙個空佇列 佇列初始化

bool

initqueue

(linkqueue *q)

//入隊 新建乙個節點,隊尾插入

intenqueue

(linkqueue *q,

int e)

s->data = e;

s->next =

null

;//把新元素插入到原隊尾的後面

q->rear-

>next = s;

q->rear = s;

return1;

}//出隊 若佇列不空,刪除q的隊頭元素,並用e返回其值

//出隊時,就是將頭結點的後繼節點出隊,將頭結點的後繼更改為它後面的節點

intdequeue

(linkqueue *q,

int*e)

intmain()

最大的感受就是記著給節點分配記憶體!!

資料結構 佇列

一 佇列的迴圈陣列實現。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...