树和树的表示

什么是树?

  • 客观世界中许多事物存在层次关系,如:
    1、人类社会家谱
    2、社会组织结构
    3、图书信息管理
  • 分层次组织在管理上具有更高的效率
数据管理的基本操作之一:查找
  • 静态查找:集合中记录是固定的
    • 没有删除和插入操作,只有查找
  • 动态查找:集合中记录是动态变化的
    • 除查找外,还可能发生插入和删除操
静态查找:

1、顺序查找 :时间复杂度为O(n)

	int sequentialSearch(StaticTable *Tb1,ElementType K){
    	int  i;
    	Tb1->Element[0]=k;//建立哨兵,以减轻循环判断条件
    	for(i=Tb1->Length;Tb1->Element[i]!=k;i--);
    	return i;//查找成功返回单元下标;不成功返回0
    }

2、二分查找 :假设n个数据元素的关键字满足有序,mid时间复杂度为O(logN)

	int binarySearch(StaticTable *Ta1,ElementType k){
    	int left=0,right,mid,NotFound=-1;
        left=1;		//初始左边界
        right=Ta1->Length;		//初始右边界
        while(left<=right){
        	mid=(left+right)/2;		//初始中间元素
            if(k < Ta1->Element[mid]){
            	right=mid-1;	//小于中间元素,调整右边界
            }else if(k > Ta1->Element[mid]){
            	left=mid+1;		//大于中间元素,调整左边界
            }else{
            	return mid;		//查找成功,返回元素数据下标
            }
        }
        return NotFound; 	//查找不成功 ,返回-1
    }

二分法查找判定树.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值