(이춘 유 편집장) 방과 후 연습 문제 [연습 문제 7]

6789 단어 데이터 구조
【7.4】
 1 #include <iostream>

 2 #include <stdio.h>

 3 #include <stdlib.h>

 4 using namespace std;  5 #define MAXN 100

 6 

 7 typedef struct node{  8     char data;  9     node *lchild; 10     node *rchild; 11 } BTNode,*LinkBTNode; 12 LinkBTNode BuildBTree(char a[],int d)    //     

13 { 14     if(a[d]==0) 15         return NULL; 16     LinkBTNode bt = (LinkBTNode)malloc(sizeof(BTNode)); 17     bt->data = a[d]; 18     bt->lchild = BuildBTree(a,d<<1); 19     bt->rchild = BuildBTree(a,d<<1|1); 20     return bt; 21 } 22 void DispBTNode(LinkBTNode b)    //           

23 { 24     if(b!=NULL){ 25         cout<<b->data; 26         if(b->lchild!=NULL||b->rchild!=NULL){ 27             cout<<"("; 28             DispBTNode(b->lchild); 29             if(b->rchild!=NULL) 30                 cout<<','; 31             DispBTNode(b->rchild); 32             cout<<')'; 33  } 34  } 35 } 36 int main() 37 { 38     int i,n; 39     while(cin>>n){ 40         if(n==0) break; 41  getchar(); 42         char a[MAXN*3+1] = {0}; 43         for(i=1;i<=n;i++)    //            

44             cin>>a[i]; 45         LinkBTNode bt = BuildBTree(a,1);   //         

46  DispBTNode(bt); 47         cout<<endl; 48  } 49     return 0; 50 }

 
Freecode : www.cnblogs.com/yym2013

좋은 웹페이지 즐겨찾기