二叉树的创建和文本显示

题目要求:(点击图片查看)

二叉树的创建和文本显示

第一步建立二叉树;

第二步打印; 

打印时应当特别注意是先遍历右子树输出,然后输出根节点,再遍历左子树输出。

源码与注释:

#include <bits/stdc++.h>
#include <string>

using namespace std;
string s;

typedef struct Node{
    string data;
    struct Node* left;
    struct Node* right;
}Node;

//建立二叉树
void Build(Node* &tree){
    cin>>s;
    if(s[0]=='#')   tree=NULL;  //为'#'时节点为空
    else{
        tree=new Node;
        tree->data=s;
        Build(tree->left);
        Build(tree->right);
    }
}

//打印二叉树
void Print_tree(Node* tree,int layer){
    if(!tree)   return;
    Print_tree(tree->right,layer+1);    //先遍历打印右子树
    if(layer!=1){
        for(int i=0;i<(layer-1)*4;i++)      //按格式输出
            printf(" ");
    }
    for(int i=0;i<tree->data.size();i++)
        printf("%c",tree->data[i]);
    printf("n");
    Print_tree(tree->left,layer+1);     //遍历打印左子树
}

int main()
{
    while(cin>>s){          //接收字符
        Node* tree = new Node;
        tree->data=s;         //建立根节点
        Build(tree->left);     //建立左子树
        Build(tree->right);     //建立右子树
        Print_tree(tree,1);     //遍历输出树
        printf("n");
    }
    return 0;
}

 

原文链接: https://www.cnblogs.com/jxxclj/p/9253001.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    二叉树的创建和文本显示

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/276953

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 上午2:10
下一篇 2023年2月15日 上午2:10

相关推荐