迴圈佇列的C語言實現

2021-09-26 06:55:42 字數 1397 閱讀 8215

迴圈佇列就是將佇列儲存空間的最後乙個位置繞到第乙個位置,形成邏輯上的環狀空間,供佇列迴圈使用。在迴圈佇列結構中,當儲存空間的最後乙個位置已被使用而再要進入隊運算時,只需要儲存空間的第乙個位置空閒,便可將元素加入到第乙個位置,即將儲存空間的第乙個位置作為隊尾。 迴圈佇列可以更簡單防止偽溢位的發生,但佇列大小是固定的。

在迴圈佇列中,當隊列為空時,有front=rear,而當所有佇列空間全佔滿時,也有front=rear。

為了區別這兩種情況,規定迴圈佇列最多只能有maxsize-1個佇列元素,當迴圈佇列中只剩下乙個空儲存單元時,佇列就已經滿了。

因此,佇列判空的條件是front=rear,而佇列判滿的條件是front=(rear+1)%maxsize。

示例**:

#include "pch.h"

#include #define max_size 10

//佇列結構體

typedef struct strqueuetype;

// 佇列的初始化

void queueinit(strqueuetype *sq)

else }

//判滿

bool isfull(strqueuetype sq)

//判空

bool isempty(strqueuetype sq)

// 入隊操作

void enqueue(strqueuetype *sq, int dat)

else

}else }

//出隊操作

void dequeue(strqueuetype *sq, int *dat)

else

}else }

//列印佇列資訊

void display(strqueuetype sq)

printf("\n");

} else

for (i = 0; i < sq.rear; i++)

printf("\n"); }}

int main()

display(strque);

printf("delete queue!\n");

for (i = 0; i < 12; i++)

display(strque);

printf("insert queue again!\n");

for (i = 0; i < 5; i++)

display(strque);

}

mysql迴圈佇列 C語言實現 迴圈佇列

include include include typedef struct queue int pbase 陣列 int front 頭 int rear 尾 rear不存放資料,所以rear前面的是最後乙個資料 queue void init queue queue pq bool full q...

迴圈佇列 陣列 C語言實現

佇列的基本概念 include include define maxsize 50 設定佇列大小 define elementtype int 方便操作,這裡定義資料型別為 int typedef struct queue 初始化佇列 void init que queue q 引數為指標型別,下面...

C語言實現,順序佇列,迴圈佇列,和棧!

佇列是一種特殊的 線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元...