• 二叉树习题


     /*编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 
    例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。
    建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。
    输入abc##de#g##f###,输出cbegdfa *
     1 #include <iostream>
     2 #include <vector>
     3 using namespace std;
     4 
     5 typedef struct BiTree
     6 {
     7   char data;
     8   struct BiTree* lchild= NULL;
     9   struct BiTree* rchild = NULL;
    10 };
    11 int count ;
    12 void CreateTree(BiTree* &T,string str)
    13 {
    14    char temp = str[count];
    15    count = count +1;
    16    if(temp == '#')
    17    {
    18        T = NULL;
    19        return ;   
    20    }
    21    else
    22    {
    23        T = (BiTree*)malloc(sizeof(BiTree)); 
    24        T->data = temp;
    25        CreateTree(T->lchild,str);
    26        CreateTree(T->rchild,str);
    27        return ;
    28    }
    29 }
    30 
    31 void InOrderTravese(BiTree* T)
    32 {
    33     if(T==NULL)
    34         return;
    35     InOrderTravese(T->lchild);
    36     cout<<T->data<<" ";
    37     InOrderTravese(T->rchild);
    38 }
    39 
    40 int main()
    41 {
    42     string str;
    43     BiTree* tree;
    44     while(cin>>str)
    45     {
    46          count = 0;
    47             CreateTree(tree,str);
    48          InOrderTravese(tree);
    49          cout<<endl;
    50     }
    51        
    52     return 0;
    53 }
  • 相关阅读:
    本机可以,服务器却不行
    学习摘录1Hello, World!
    钻石问题
    OPEN OFFICE使用技巧
    操作符的重载
    函数重载
    关于“结构”好别扭的一段话
    多重继承
    OPEN OFFICE操作技巧3
    70个现代风格的HTML5 WordPress主题网站
  • 原文地址:https://www.cnblogs.com/LaplaceAkuir/p/5776685.html
Copyright © 2020-2023  润新知