閱讀以下說(shuō)明和 C 函數(shù),填補(bǔ)函數(shù)中的空缺,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
簡(jiǎn)單隊(duì)列是符合先進(jìn)先出規(guī)則的數(shù)據(jù)結(jié)構(gòu),下面用不含有頭結(jié)點(diǎn)的單向循環(huán)鏈表表示簡(jiǎn)單隊(duì)列。
函數(shù) enqueue(queue *q,KeyType new_elem)的功能是將元素new_elem 加入隊(duì)尾。
函數(shù) Dnqueue(queue *q,KeyType *elem)的功能使將非空隊(duì)列的隊(duì)頭元素出隊(duì)(從
隊(duì)列中刪除),并通過(guò)參數(shù)帶回剛出隊(duì)的元素。
用單向循環(huán)鏈表表示的隊(duì)列如圖 4-1 所示。
圖 4-1 單向循環(huán)鏈表表示的隊(duì)列示意圖
隊(duì)列及鏈表結(jié)點(diǎn)等相關(guān)類型定義如下:
enum {errOr, OK};
typedef int KeyType;
typedef struct qNode﹛
KeyType data;
Struct qNode*next;
﹜qNode,*Linkqueue;
Typedef struct﹛
int size;
Link:queue rear;
}queue;
【C 函數(shù)】
int enqueue(queue*q,KeyType new_elem)
﹛//元素 new_elem 入隊(duì)列
qNode*p;
P=(qNode*)malloc(sizeof(qNode));
if(!p)
return errOr;
P->data=new_elem;
if(q->rear)﹛
P->next=q->rear->next;
();
﹜
else
P->next=p;
﹙﹚;
q->size++;
return OK;
﹜
int Dequeue(queue*q,KeyType*elem)
﹛//出隊(duì)列
qNode*p;
if(0==q->size)//是空隊(duì)列
return errOr;
P=(); //令 p 指向隊(duì)頭元素結(jié)點(diǎn)
*elem =p->data;
q->rear->next=(); //將隊(duì)列元素結(jié)點(diǎn)從鏈表中去除
if(())//被刪除的隊(duì)頭結(jié)點(diǎn)是隊(duì)列中唯一結(jié)點(diǎn)
q->rear=NULL //變成空隊(duì)列
free(p);
q->size--;
return OK;
﹜
							
 
                     10年專注信管,信管教育專注者,信管網(wǎng)優(yōu)勢(shì)
 10年專注信管,信管教育專注者,信管網(wǎng)優(yōu)勢(shì) 免費(fèi)試聽(tīng)信管網(wǎng)信息系統(tǒng)項(xiàng)目管理師課程
 免費(fèi)試聽(tīng)信管網(wǎng)信息系統(tǒng)項(xiàng)目管理師課程 全國(guó)前50名高分學(xué)員訪談:董麗(174)、李思...
 全國(guó)前50名高分學(xué)員訪談:董麗(174)、李思... 信息系統(tǒng)項(xiàng)目管理師高端班培訓(xùn)課程
 信息系統(tǒng)項(xiàng)目管理師高端班培訓(xùn)課程 信管老師100小時(shí)直播課程
 信管老師100小時(shí)直播課程 軟考報(bào)名專題(報(bào)名時(shí)間、入口等)
 軟考報(bào)名專題(報(bào)名時(shí)間、入口等) 中級(jí)系統(tǒng)集成項(xiàng)目管理工程師通關(guān)課程
 中級(jí)系統(tǒng)集成項(xiàng)目管理工程師通關(guān)課程 系統(tǒng)規(guī)劃與管理師課程(考試介紹與題型分析)
 系統(tǒng)規(guī)劃與管理師課程(考試介紹與題型分析) 軟題庫(kù):軟考在線題庫(kù)、支持手機(jī)答題
 軟題庫(kù):軟考在線題庫(kù)、支持手機(jī)答題