pta建立與遍歷二叉樹


L1-008 建立與遍歷二叉樹 (20 分)

以字符串的形式定義一棵二叉樹的先序序列,若字符是‘#’, 表示該二叉樹是空樹,否則該字符是相應結點的數據元素。讀入相應先序序列,建立二叉鏈式存儲結構的二叉樹,然后中序遍歷該二叉樹並輸出結點數據。

輸入格式:

字符串形式的先序序列(即結點的數據類型為單個字符)

輸出格式:

中序遍歷結果

輸入樣例:

在這里給出一組輸入。例如:

ABC##DE#G##F###

輸出樣例:

在這里給出相應的輸出。例如:

CBEGDFA
 
        
 1 #include<cstdio>
 2 #include<cstdlib>
 3 using namespace std;
 4 char ch;
 5 typedef struct BiTNode{
 6     char data;
 7     struct BiTNode *lchild,*rchild;
 8 }BiTNode,*BiTree;
 9 //按前序輸入二叉樹中結點的值(一個字符)
10 //#表示空樹,構造二叉鏈表表示二叉樹T
11 void CreateBiTree(BiTree &T)
12 {
13     if(ch=='\n')
14         return;
15     scanf("%c",&ch);
16     if(ch=='#')
17         T=NULL;
18     else{
19         T=(BiTree)malloc(sizeof(BiTNode));
20         T->data=ch;
21         CreateBiTree(T->lchild);
22         CreateBiTree(T->rchild);
23     }
24 }
25 void InOrder(BiTree T)//中序遍歷二叉樹
26 {
27     if(T!=NULL){
28         InOrder(T->lchild);
29         printf("%c",T->data);
30         InOrder(T->rchild);
31     }
32 }
33 int main()
34 {
35     BiTree T;
36     CreateBiTree(T);
37     InOrder(T);
38     return 0;//124##5##3##
39 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM