zoukankan      html  css  js  c++  java
  • 二分搜索树

    最水的二叉树

    #include<iostream>
    #include<algorithm>
    using namespace std;
    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;
    }
    int data[10000];
    struct node
    {
    	int value;
    	int left;
    	int right;
    	node()
    	{
    		value=-0x7ffffff;
    		left=-1;
    		right=-1;
    	}
    };
    node tree[1010];
    int tail;
    int build(int l,int r)
    {
    	if(l>r)
    		return -1;
    	int num=++tail;
    	int mid=(l+r)>>1;
    	tree[num].value=data[mid];
    	tree[num].left=build(l,mid-1);
    	tree[num].right=build(mid+1,r);
    	return num;
    }
    void visit(int x)
    {
    	if(x==-1)
    		return ;
    	visit(tree[x].left);
    	printf("%d ",tree[x].value);
    	visit(tree[x].right);
    }
    int insert(int val,int x)
    {
    	if(x==-1)
    	{
    		tree[++tail].value=val;
    		return tail;
    	}
    	if(val<tree[x].value)
    	{
    		tree[x].left=insert(val,tree[x].left);
    		return x;
    	}
    	else
    	{
    		tree[x].right=insert(val,tree[x].right);
    		return x;
    	}
    }
    int main()
    {
    	int n=read(),m=read();
    	for(int i=1;i<=n;i++)
    		data[i]=read();
    	sort(data+1,data+1+n);
    	build(1,n);
    	for(int i=1;i<=m;i++)
    		insert(read(),1);
    	visit(1);
    }
    
  • 相关阅读:
    spring+mybatis+druid+xml
    springboot run(),bean注册
    linux命令之cat
    linux命令之more
    linux中配置maven环境
    linux中配置Java环境
    linux命令之nohup
    在Eclipse中创建Maven多模块工程的例子
    MINA之心跳协议运用
    Java动态代理
  • 原文地址:https://www.cnblogs.com/Lance1ot/p/8858694.html
Copyright © 2011-2022 走看看