A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qqhao01 高级黑马   /  2013-9-12 09:27  /  2074 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 qqhao01 于 2013-9-12 21:00 编辑

二叉树这块有点没太懂

5 个回复

正序浏览
如果你不是学计算机专业的,那么对于二叉树肯定有不理解的地方,其实是很正常的。
先来讲讲“树”:
树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示。树在计算机领域中也得到广泛应用,如在编译源程序时,可用树表示源程序的语法结构。又如在数据库系统中,树型结构也是信息的重要组织形式之一。一切具有层次关系的问题都可用树来描述。
树结构的特点是:它的每一个结点都可以有不止一个直接后继,除根结点外的所有结点都有且只有一个直接前驱。以下具体地给出树的定义及树的数据结构表示。
如果不理解,举个列子吧。
算了想了半天没有想到一个好例子,就将一个网络的例子吧:
一台服务器,包含很多小的服务器,然后小的服务器包含很多个像你一个上网的用户,画出一个结构图来,就是树的结构图。
二叉树呢?就是每个服务器下面最多只能有2个小服务器,可以有1个,也可以没有。
这样说,你是否可以明白呢?
大家还有好的例子的话,也可以提出来,供这位同学理解。
回复 使用道具 举报
Set有众多实现类,而HashSet和TreeSet是最常用的两个.
1.通过TreeSet(Comparator<? super E> comparator) 构造方法指定TreeSet的比较器进行排序;
2.使用TreeSet()构造方法,并对需要添加到set集合中的元素实现Comparable接口进行排序;

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
TreeSet底层实现的是二叉树数据结构
当使用TreeSet对集合进行排序时,TreeSet首先找到集合中的中间值作为根节点
然后再对整个集合进行遍历
在遍历过程中,如果当前元素比根节点小,就放在根节点的左边。否则,则放在右边。并且它也作为下一次遍历过程中的节点
然后再重复上面的操作

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
记住小往左走,大往右走,就可以了
大小顺序,从左下方开始,按照左中右的顺序,就是从小到大

1.png (1.65 KB, 下载次数: 20)

1.png

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报

TreeSet集合自己可以具备比较性,在new TreeSet对象的时候,构造方法中,传递一个比较器对象
    |-- 这个比较器,必须实现Comparator接口,在TreeSet构造方法中,传递的参数是Comparator接口的
        实现类对象
  |-- 用TreeSet,其实在用比较器
     |-- 存储的对象自己具备比较性,对象实现Comparable接口 ,这是对象本身的比较器
     |-- TreeSet自己具备比较性,自定义比较器类,实现Comarator接口 ,这是自定义比较器

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马