2017上半年程序員考試案例分析真題(4)

程序員 責任編輯:小布丁 2017-05-25

添加老師微信

備考咨詢

加我微信

摘要:希賽網為大家整理了2017上半年程序員考試案例分析真題,以下為第四部分。試題四(共15分)閱讀以下說明和C函數,填補函數中的空缺,將解答填入答題紙的對應欄內?!菊f明】

       希賽網為大家整理了2017上半年程序員考試案例分析真題,以下為第四部分。


       試題四(共15分)

       閱讀以下說明和C函數,填補函數中的空缺,將解答填入答題紙的對應欄內。

       【說明】

       簡單隊列是符合先進先出規(guī)則的數據結構,下面用不含有頭結點的單向循環(huán)鏈表表示簡單隊列。

       函數enqueue(queue*q,KeyType new_elem)的功能是將元素new_elem加入隊尾。

       函數Dnqueue(queue*q,KeyType*elem)的功能使將非空隊列的隊頭元素出隊(從隊列中刪除),并通過參數帶回剛出隊的元素。用單向循環(huán)鏈表表示的隊列如圖4-1所示。

       4.png

       圖4-1單向循環(huá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函數】

       int enqueue(queue*q,KeyType new_elem)

       ﹛//元素new_elem入隊列

       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)

       ﹛//出隊列

       qNode*p;

       if(0==q->size)//是空隊列

       return errOr;

       P=();//令p指向隊頭元素結點

       *elem=p->data;

       q->rear->next=();//將隊列元素結點從鏈表中去除

       if(())//被刪除的隊頭結點是隊列中結點

       q->rear=NULL//變成空隊列

       free(p);

       q->size--;

       return OK;

       ﹜


>>>>返回目錄:2017上半年程序員考試案例分析真題(匯總)
>>>>進入估分:2017上半年軟考分數早知道,在線估分+真題解析
>>>>點擊查看:2017上半年程序員上午真題答案和解析


更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

軟考備考資料免費領取

去領取

!
咨詢在線老師!