閱讀以下說明和C函數(shù),填補函數(shù)代碼中的空缺(1)~(5),將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
隊列是一種常用的數(shù)據(jù)結(jié)構(gòu),其特點是先入先出,即元素的插入在表頭、刪除在表尾進行。下面采用順序存儲方式實現(xiàn)隊列,即利用一組地址連續(xù)的存儲單元存放隊列元素,同時通過模運算將存儲空間看作一個環(huán)狀結(jié)構(gòu)(稱為循環(huán)隊列)。
設(shè)循環(huán)隊列的存儲空間容量為MAXQSIZE,并在其類型定義中設(shè)置base、rear和length三個域變量,其中,base為隊列空間的首地址,rear為隊尾元素的指針,length表示隊列的長度。
#define MAXQSIZE 100
typedef struct {
QElemType *base; /* 循環(huán)隊列的存儲空間首地址 */
int rear; /* 隊尾元素索引 */
int length; /* 隊列的長度 */
} SqQueue;
例如,容量為8的循環(huán)隊列如圖3-1所示,初始時創(chuàng)建的空隊列如圖3-1(a)所示,經(jīng)過一系列的入隊、出隊操作后,隊列的狀態(tài)如圖3-1(b)所示(隊列長度為3)。