《《C程序設(shè)計(jì)基礎(chǔ)》實(shí)驗(yàn)指導(dǎo)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《C程序設(shè)計(jì)基礎(chǔ)》實(shí)驗(yàn)指導(dǎo)(9頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo),,實(shí)驗(yàn)4 二叉樹(shù)的建立與遍歷,實(shí)驗(yàn)?zāi)康?熟悉樹(shù)的各種表示方法和各種遍歷方式,掌握有關(guān)算法的實(shí)現(xiàn),了解樹(shù)在計(jì)算機(jī)科學(xué)及其它工程技術(shù)中的應(yīng)用。,實(shí)驗(yàn)4 二叉樹(shù)的建立與遍歷,實(shí)驗(yàn)內(nèi)容 問(wèn)題描述:任意給定一棵二叉樹(shù)。試設(shè)計(jì)一個(gè)程序,在計(jì)算機(jī)中構(gòu)造該二叉樹(shù),并對(duì)它 進(jìn)行遍歷。 輸入:一棵二叉樹(shù)的結(jié)點(diǎn)若無(wú)子樹(shù),則可將其子樹(shù)看作 “.”,輸入時(shí),按照前序序列的順序輸入該結(jié)點(diǎn)的內(nèi)容。對(duì) 下圖,其輸入序列為ABD..EH...CF.I..G..。,實(shí)驗(yàn)4 二叉樹(shù)的建立與遍歷,實(shí)驗(yàn)內(nèi)容,實(shí)驗(yàn)4 二叉樹(shù)的建立與遍歷,實(shí)驗(yàn)內(nèi)容 輸出:若為空二叉樹(shù),則輸出:THIS IS A EMPTY BINARY
2、 TREE。若二叉樹(shù)不空,按后序序列輸出,對(duì)上例,輸出結(jié)果為:DHEBIFGCA。 存儲(chǔ)結(jié)構(gòu):采用二叉鏈表存儲(chǔ)。 算法的基本思想:采用遞歸方法建立和遍歷二叉樹(shù)。首先建立二叉樹(shù)的根 結(jié)點(diǎn),然后建立其左右子樹(shù),直到空子樹(shù)為止。后序遍歷二叉樹(shù)時(shí),先遍歷左子樹(shù),后遍歷右子樹(shù),最后訪問(wèn)根結(jié)點(diǎn)。,實(shí)驗(yàn)4 二叉樹(shù)的建立與遍歷,實(shí)驗(yàn)內(nèi)容 參考源程序: #include #include struct node char info; struct node *llink,*rlink; ; typedef struct node NODE; NODE *creat() char x; NODE *p;
3、 scanf(%c,,實(shí)驗(yàn)4 二叉樹(shù)的建立與遍歷,實(shí)驗(yàn)內(nèi)容 if(x!=.) p=(NODE *)malloc(sizeof(NODE)); p-info=x; p-llink=creat(); p-rlink=creat(); else p=NULL; return p; ,實(shí)驗(yàn)4 二叉樹(shù)的建立與遍歷,實(shí)驗(yàn)內(nèi)容 void run(NODE *t) if(t) run(t-llink); run(t-rlink); printf(%c,t- info); main() NODE *T; printf(PLease input a tree:n); T=creat(); printf(n); if(!T),實(shí)驗(yàn)4 二叉樹(shù)的建立與遍歷,實(shí)驗(yàn)內(nèi)容 printf(This is a empty binary tree.); else printf(The result of post travese is:n ); run(T); printf(n);,