zoukankan      html  css  js  c++  java
  • 九度 1201 -二叉排序数遍历- 二叉排序树

    这个是道正统的树构建和遍历题。一開始还想用数组构建取代一下水过去,可是发现不行,仅仅好老老实实的用指针了。二叉排序树和遍历方法假设不清楚定义的话。最好去看看数据结构书复习下。

    #include<stdio.h>
    
    struct node{
        node *l;
        node *r;
        int val;
        node(int a):val(a),l(NULL),r(NULL){};
    };
    node *root;
    int n;
    void qian(node *p){
        printf("%d ",p->val);
        if(p->l!=NULL)qian(p->l);
        if(p->r!=NULL)qian(p->r);
    }
    void zhong(node *p){
        if(p->l!=NULL)zhong(p->l);
        printf("%d ",p->val);
        if(p->r!=NULL)zhong(p->r);
    }
    void hou(node *p){
        if(p->l!=NULL)hou(p->l);
        if(p->r!=NULL)hou(p->r);
        printf("%d ",p->val);
    }
     
    int main(){
         
        int val;
        node *p;
        while(~scanf("%d",&n)){
            root=NULL;
            for(int i=0;i<n;i++){
                scanf("%d",&val);
                if(i==0){
                    root=new node(val);
                    continue;
                }
                p=root;
                while(1){
                    if(val==p->val)break;
                    else if(val<p->val){
                        if(p->l==NULL){
                            p->l=new node(val);
                            break;
                        }
                        else{
                            p=p->l;continue;
                        }
                    }
                    else if(val>p->val){
                        if(p->r==NULL){
                            p->r=new node(val);
                            break;
                        }
                        else{
                            p=p->r;continue;
                        }
                    }
                }
            }   
            qian(root);
            printf("
    ");
            zhong(root);
            printf("
    ");
            hou(root);
            printf("
    ");
        }
        return 0;
    }


  • 相关阅读:
    保险
    cron表达式的用法
    Hive 学习记录
    股票的五种估值方法
    AtCoder Beginner Contest 113 A
    ZOJ 4070 Function and Function
    银行业务队列简单模拟 (数据结构题目)
    算法3-7:银行排队
    算法3-5:n阶Hanoi塔问题
    算法3-1:八进制数
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5080578.html
Copyright © 2011-2022 走看看