解题思路:

注意事项: 

参考代码:

#include<bits/stdc++.h>
using namespace std;
struct bstTree{
    int val;
    bstTree* cl;
    bstTree* cr;
};
void insert(bstTree** T,int data){
    //空树
    if(*T==NULL){
        bstTree* node=new bstTree;
        node->val=data;
        node->cl=NULL;
        node->cr=NULL;
        *T=node;
    }
    else{
        if((*T)->val>data) insert((&(*T)->cl),data);
        else if((*T)->val <data) insert((&(*T)->cr),data);
    }
    return;
}
//preorder
void preorder(bstTree* T){
    if(T==NULL) return;
    //root;
    cout<<T->val<<" ";
    //left
    preorder(T->cl);
    //right
    preorder(T->cr);
}
void midorder(bstTree* T){
    if(T==NULL) return;
    midorder(T->cl);
    cout<<T->val<<" ";
    midorder(T->cr);
}
void lastorder(bstTree* T){
    if(T==NULL) return;
    lastorder(T->cl);
    lastorder(T->cr);
    cout<<T->val<<" ";
}
void check()
{
    
    int n;
    while(cin>>n){
        bstTree* T=NULL;   
        while(n--){
            int data;
            cin>>data;
            insert(&T,data);
        }
        preorder(T);
        cout<<endl;
        midorder(T);
        cout<<endl;
        lastorder(T);
        cout<<endl;
    }
}
int main()
{
    check();
    
    return 0;
}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论