迴圈佇列的實現

2021-09-01 14:02:55 字數 848 閱讀 5373

#include#define size 10  //最大佇列長度,實際上只能存入(size-1)個資料

typedef char datatype;

//迴圈佇列可以解決順序佇列的假滿現象

//迴圈佇列的型別定義

typedef struct

circlequeue;

//初始化佇列

void init(circlequeue * q)

//判斷佇列是否為空

int isempty(circlequeue *s)

//判斷佇列是否為滿

int isfull(circlequeue *q)

//元素入隊,rear所指的單元始終未空

void inqueue(circlequeue *q,datatype e)

else }

//元素出隊

datatype outqueue(circlequeue *q)

else }

//列印佇列

void printqueue(circlequeue q)

printf("\n");

}//取得隊頭元素

datatype getfirst(circlequeue q)

else }

void main()

printf("出隊順序為:");

printqueue(q);

outqueue(&q);

printf("出隊順序為:");

printqueue(q);

printf("隊頭元素為:%c",getfirst(q));

printf("\n");

}

佇列 迴圈佇列的實現

為了可以重新利用佇列底層陣列中已刪除元素所佔的空間,消除可能出現的 假滿 現象,將順序佇列改進為迴圈佇列。迴圈佇列是首尾相連的佇列 當front rear變數達到底層陣列的capacity 1之後,再向前以為就變成0.入隊 1 判斷佇列是否已滿,已滿丟擲越界異常 2 不滿的話把元素查到隊尾,並且re...

迴圈佇列的實現

佇列是一種先進先出的線性表,具有線性表的特性 分為鏈式佇列與順序佇列 順序佇列 用一段位址連續的儲存單元儲存資料元素,定義兩個游標 指向隊頭 的游標 front 指向隊尾的游標 rear 如果front rear隊列為空,如果 rear 1 maxsize front佇列滿 此為迴圈佇列 如普通佇列...

迴圈佇列的實現

include include includeusing namespace std typedef int qelementtype typedef int status define error 0 define ok 1 define maxqsize 10 佇列的資料抽象 typedef s...