軟件設計師案例分析當天每日一練試題地址:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4
往期軟件設計師每日一練試題匯總:m.xiexiliangjiufa.com/class/27/e4_1.html
軟件設計師案例分析每日一練試題(2023/6/3)在線測試:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2023/6/3
點擊查看:更多軟件設計師習題與指導
軟件設計師案例分析每日一練試題內容(2023/6/3)
試題五
閱讀下列說明和C函數(shù)代碼,將應填入 (n) 處的字句寫在的對應欄內。
[說明]
對二叉樹進行遍歷是二叉樹的一個基本運算。遍歷是指按某種策略訪問二叉樹的每個節(jié)點,且每個節(jié)點僅訪問一次的過程。函數(shù)InOrder()借助棧實現(xiàn)二叉樹的非遞歸中序遍歷運算。
設二叉樹采用二叉鏈表存儲,節(jié)點類型定義如下:
typedef struct BtNode{
ElemType data; /*節(jié)點的數(shù)據(jù)域,ElemType的具體定義省略*/
struct BtNode * lchild * rchild; /*節(jié)點的左、右孩子指針域*/
}BtNode,*BTree;
在函數(shù)InOrder()中,用棧暫存二叉樹中各個節(jié)點的指針,并將棧表示為不含頭節(jié)點的單向鏈表(簡稱鏈棧),其節(jié)點類型定義如下:
typedef struct StNode{ /*鏈棧的節(jié)點類型*/
BTree elem; /*棧中的元素是指向二叉鏈表節(jié)點的指針*/
struct StNode*link;
}StNode;
假設從棧頂?shù)綏5椎脑貫閑n、en-1…、e1,則不含頭節(jié)點的鏈棧示意圖如圖5-1所示。
[C函數(shù)]
int InOrder(BTree root) /*實現(xiàn)二叉樹的非遞歸中序遍歷*/
{
BTree ptr; /*ptr用于指向二叉樹中的節(jié)點*/
StNode*q; /*q暫存鏈棧中新創(chuàng)建或待刪除的節(jié)點指針*/
StNode*stacktop=NULL; /*初始化空棧的棧頂指針stacktop*/
Ptr=root; /*ptr指向二叉樹的根節(jié)點*/
while ( (1) | | stacktop !=NULL) {
while (ptr!=NULL) {
q=(StNode*)malloc(sizeof (StNode));
if (q= =NULL)
return-1;
q->elem=ptr;
(2) ;
stacktop=q; /*stacktop指向新的棧頂*/
ptr= (3) ; /*進入左子樹*/
}
q=stacktop;
(4) ; /*棧頂元素出棧*/
visit(q); /*visit是訪問節(jié)點的函數(shù),其具體定義省略*/
ptr= (5) ; /*進入右子樹*/
free(q); /*釋放原棧頂元素的節(jié)點空間*/
}
return 0;
}/*Inorder*/
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:m.xiexiliangjiufa.com/st/245828376.html信管網(wǎng)訂閱號
信管網(wǎng)視頻號
信管網(wǎng)抖音號
溫馨提示:因考試政策、內容不斷變化與調整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權威部門公布的內容為準!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質量的課程和服務,解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,教材和資料參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。
發(fā)表評論 查看完整評論 | |