码迷,mamicode.com
首页 > 其他好文 > 详细

Q114第一颗二叉查找树(链式)

时间:2017-01-08 08:01:53      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:return   str   左右子树   name   font   size   image   二叉查找树   main   

输入n,然后n个树,建立二叉查找树。从小到大输出每个节点的左右子树,空输出#

技术分享

#include<cstdio>
#include<iostream>
using namespace std;
typedef struct node{
    int data;
    struct node *lchild,*rchild;
}NODE;
void input(NODE *root,int value){
    if(value==root->data){
        return;
    }
    else if(value>root->data){
        if(root->rchild==NULL){
            root->rchild=new NODE;
            root->rchild->data=value;
            root->rchild->lchild=NULL;
            root->rchild->rchild=NULL;
        }
        else{
            input(root->rchild,value);
        }
    }
    else{
        if(root->lchild==NULL){
            root->lchild=new NODE;
            root->lchild->data=value;
            root->lchild->lchild=NULL;
            root->lchild->rchild=NULL;
        }
        else{
            input(root->lchild,value);
        }
    }
}
int count=0,n;
void preorder(NODE *root){
    if(root==NULL)return;
    preorder(root->lchild);
    if(count<n){
        printf("%d(",root->data);
        if(root->lchild==NULL){
            printf("#");
        }
        else{
            printf("%d",root->lchild->data);
        }
        if(root->rchild==NULL){
            printf(", #)\n");
        }
        else{
            printf(", %d)\n",root->rchild->data);
        }
        count++;
    }
    preorder(root->rchild);
}
int main(){
    NODE *root=new NODE;
    root->lchild=root->rchild=NULL;
    int a;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&a);
        input(root,a);
    }
    preorder(root);
    return 0;
}

  

Q114第一颗二叉查找树(链式)

标签:return   str   左右子树   name   font   size   image   二叉查找树   main   

原文地址:http://www.cnblogs.com/Q1143316492/p/6260897.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!