C語言實現使用靜態陣列實現迴圈佇列

2021-07-10 08:03:55 字數 1080 閱讀 1804

佇列是一種先進先出的的資料結構,我們同樣可以使用陣列、鍊錶等來實現。我們可以在佇列的尾部進行插入元素,在佇列的頭部取出元素。普通的佇列由於空間利用率不高,所以我們一般都用迴圈佇列。迴圈佇列中最重要的的兩個操作就是判斷是否為空和是否已滿。當head==tail時,表示隊列為空。當(tail+1)%max_size == head,表示佇列已滿。

我判斷隊滿的方法:犧牲乙個單元來區分對空和隊滿,入隊時少用乙個佇列單元,相當於浪費乙個儲存空間。「隊頭指標的隊尾指標的下一位置作為隊滿的標誌」。**上傳至:  。

(1)進佇列

//進佇列

void enqueue(int value)else

}

(2)出佇列

//出佇列

int dequeue()else

printf("%d\n",temp);

return temp;

}

(3)判斷佇列是否為空

//判斷佇列是否為空

int isempty()

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

return 0;

}

(4)判斷佇列是否已滿

//判斷佇列是否已滿

/** * 我這裡判斷隊滿的的方法:

犧牲乙個單元來區分隊空和隊滿,入隊時少用乙個佇列單元。如果陣列的大小為size,那麼實際只能存放(size-1)個元素。(這是比較常用的判滿的方式)

* */

int isfull()

printf("佇列未滿\n");

return 0;

}

(5)列印佇列元素

//列印出佇列元素

void printqueue()

printf("\n");

}

(6)測試**

int main(int argc, const char * argv)

迴圈佇列 陣列 C語言實現

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

靜態陣列實現的順序表(C語言實現)

在寫順序表之前我們先來了解下相關的一些知識,以便我們後期能夠寫出更好的東西。資料結構是相互之間存在一種或多種特定關係的資料元素的集合。根據資料元素之間關係的不同特性,通常有如下種基本結構 集合 結構中的元素之間除了 同屬於乙個集合 的關係外,別無其他的關係。如 廣義表。線性結構 結構中的資料元素之間...

c語言實現螺旋陣列

螺旋陣列 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 分析 這是乙個一維維度和二維維度相等的陣列arr len len 將num 1開始從arr 0 0 賦值,直到num len len結束賦值。在賦值過程中,如...