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