課本源碼部分
第3章 棧和隊列 - 循環隊列
——《數據結構》-嚴蔚敏.吳偉民版
源碼使用說明 鏈接☛☛☛ 《數據結構-C語言版》(嚴蔚敏,吳偉民版)課本源碼+習題集解析使用說明
課本源碼合輯 鏈接☛☛☛ 《數據結構》課本源碼合輯
習題集全解析 鏈接☛☛☛ 《數據結構題集》習題解析合輯
本源碼引入的文件 鏈接☛ Status.h
文檔中源碼及測試數據存放目錄:數據結構\▲課本算法實現\▲03 棧和隊列\08 CylSeqQueue
概述
循環隊列是隊列的一種變體,它仍然遵循隊列“先進先出,后進后出”的特性。
解析
當隊列用順序存儲結構時,容易造成空間浪費,用鏈式存儲結構時,操作會顯得不便(涉及到空間的申請、釋放)。所以,在隊列所需容量可以預估的前提下,一種折衷的存儲方案是用數組作為存儲結構,但邏輯上采用循環隊列這種變體。
循環隊列的難點在於對隊列空、隊列滿、隊列長度的判斷上,結合圖例會更容易理解。
循環隊列存儲方式如下圖(用數組存放其元素):
源碼
文件一 ☛ CylSeqQueue.h
文件二 ☛ CylSeqQueue.c
文件三 ☛ CylSeqQueue-main.c (測試文檔)
測試結果展示