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