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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 崔政 中级黑马   /  2012-10-23 21:02  /  1840 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看了毕老师day15的视频,讲到了TreeSet的数据结构二叉树。
一开始老师画图的时候还懂,但讲到那个默认顺序从小到大开始晕了。
说先存一个值,然后开始比,小的放左边,大的放右边。形成叉状结构

从小往大,1-4可以理解。但是为什么5是29那个位置呢?
因为29是那一叉的最小值?还有6那个位置,为什么顺序不是5-6-8,而是5-6-7.怎么突然拐了,哎呀晕。
求高手解答。

评分

参与人数 1技术分 +1 收起 理由
杨志 + 1

查看全部评分

6 个回复

倒序浏览
因为右边的最低层的左边是最小,左小右大,所以顺序是29<30<36<40<90
回复 使用道具 举报
二叉树的遍历是都是从最底层开始的,先从左边的最底层一直到开始比较的节点为止,然后再遍历这个节点右边的最底层,同样是从这个部分的最左边开始遍历
回复 使用道具 举报
这就涉及到数据结构的问题,因为二叉树保持总保持一个有序状态:即左子树小于根节点,根节点小于右子树。这样的结构使得二叉树在查找上具有与二分搜索同样的效率。
回复 使用道具 举报
这个问题你可以反过来想想:给你这么9个数字,自己根据左小右大的思路排序一次,自己排一次以后就非常明确了。
想想七(36)为什么在7这个位置上,它是最先跟四比较才会在右边,再跟八比较才会在左边。所以在四右边的都比4大,在八左边的都比八小
回复 使用道具 举报
数据结构有三种遍历,先序遍历,中序遍历和后序遍历,你上面的就是中序排序了,弄懂得就是set怎么去存数据,其实把拍序的结果和中序遍历拿来比较一下就可以把二叉树画出来了
回复 使用道具 举报
翁鹏 高级黑马 2012-10-25 14:56:51
7#
先更正一点, 你这个是二叉树下面二叉查找树,即比本节点元素小的放右边,比本节点元素大的放左边。

另外,你传的图使用的是树中的中序遍历,树都是递归遍历的。中序遍历的原理是: 先左子树  再中间  再右子树 递归遍历。所以一开始会遍历到最左子节点........。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马