zoukankan      html  css  js  c++  java
  • 数据结构 --- 二叉搜索树

    静态建树,层数较小

    memset(a,-1,sizeof a)//初始化静态数组a,所有值为-1(防止题目有值为0,导致冲突)
    void build(){
    	mm(a,-1);
    	int x;
    	for(int i = 0; i < n; i ++ ){
    		cin >> x;
    		idx = 1;
    		while(1){
    			if(a[idx] == -1){
    				a[idx] = x;
    				break;
    			}else if(x < a[idx]) idx *= 2;
    			else idx = 2 * idx + 1;
    		}
    	}
    }
    

    存放二叉搜索树的左右儿子结点,静态建树

    int n;
    int a[N];
    int l[N],r[N];
    int d[N],dep = 1;
    mm(l,-1);mm(r,-1);
    void add(int root,int i,int level){
    	if(a[i] <= a[root]){
    		if(l[root] == -1){
    			l[root] = i;
    			d[level] ++;
    			dep = max(level,dep);
    			return ;
    		}else add(l[root],i,level + 1);
    	}else{
    		if(r[root] == -1){
    			r[root] = i;
    			d[level] ++;
    			dep = max(level,dep);
    			return ;
    		}else add(r[root],i,level + 1);
    	}
    }
    
  • 相关阅读:
    app-授权登录插件配置
    微信公众号-公众号设置-功能设置
    Java变量
    Java数据类型
    计算机存储单元
    Java常量
    k8s
    第一个Java程序
    旋转木马
    tools
  • 原文地址:https://www.cnblogs.com/bingers/p/14044560.html
Copyright © 2011-2022 走看看