binary search tree

The most watery binary tree

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;
struct node
{
    int value;
    int left;
    int right;
    node()
    {
        value=0;
        left=-1;
        right=-1;
    }
};
node tree[101000];
int tail;
int read()
{
    int s=0,f=1;
    char in=getchar();
    while(in<'0'&&in>'9')
    {
        if(in=='-')
            f=-1;
        in=getchar();
    }
    while(in>='0'&&in<='9')
    {
        s=(s<<1)+(s<<3)+in-'0';
        in=getchar();
    }
    return s*f;
}
void insert(int val,int num)
{
    if(tree[num].left==-1)
    {
        tree[num].value=val;
        tree[num].left=++tail;
        tree[num].right=++tail;
        return ;
    }
    if(val>tree[num].value)
        insert(val,tree[num].right);
    if(val<tree[num].value)
        insert(val,tree[num].left);
    return ;
}
void visit(int num)
{
    if(tree[num].left==-1)
        return ;
    visit(tree[num].left);
    printf("%d ",tree[num].value);
    visit(tree[num].right);
}
int main()
{
    int n=read();
    int data;
    tail=1;
    for(int i=1;i<=n;i++)
    {
        data=read();
        insert(data,1);     
    }
    visit(1);
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324552315&siteId=291194637