| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5759 人关注过本帖, 1 人收藏
标题:这么多天了,搜索二叉树才搞定了最基础的部分(蹉跎了好些岁月,终于搞定了 ...
取消只看楼主 加入收藏
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 20楼 九转星河
嗯……找时间吧。

还是那个字……忙。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-10 20:08
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 22楼 九转星河
如果通过修改节点指针来删除,那么假设有下面这棵树,删除节点10,指针应该怎么调整?我想不到答案。

                10
            5         15
       4        6   11     16



另外一点,为什么你会觉得删除只有一种方法呢?惰性删除是一种删除,寻找替换,永远删除叶节点或只有一个子字节的节点,就不是删除了呢?


[此贴子已经被作者于2017-5-11 05:49编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-11 05:47
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 24楼 九转星河
那说明很多人看过我看的书。

《C和指针》和《算法》提供了这个方法。
《数据结构与算法分析》提供了一个递归版本的删除函数,正是对这个递归函数的研究,我写出了迭代版本。

[此贴子已经被作者于2017-5-11 18:32编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-11 18:31
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 26楼 九转星河
晚点再说,我先搞定我自己的先。
不着急。

别习惯性熬夜,睡觉去吧。上班去了,Bye。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-12 05:51
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 29楼 九转星河
没什么主流和非主流,达成目的就行。
这是我学习编程后获得的认识。

四种遍历的迭代版本算是搞定了。
中序遍历找时间来重写。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-12 19:11
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 31楼 九转星河
你说的是递归版本,用递归来写,也就处理节点的语句位置的区别。
迭代版本,后序我倒觉得挺简单的。把我难住的反而是中序。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-12 20:18
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 33楼 九转星河
都已经搞定了。以后找时间看吧。
现在准备睡觉,明天很早要上班。

我的版本,在一定程度上模拟了递归。
我是怎么写出来的呢?嗯,我先手动将递归版本全部展开,然后……开写。

[此贴子已经被作者于2017-5-12 21:00编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-12 20:55
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 35楼 九转星河
我收回我前几天说的,希望下周进入AVL树环节。
我低估了二叉树,嗯……准确说我对二叉树理解不够深,会比较好。
所以……我觉得在二叉树上在停停会比较好。

搜索了一下线索二叉树,不太明白。我的书上貌似没有这中结构。

[此贴子已经被作者于2017-5-12 21:07编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-12 21:03
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 10楼 书生牛犊
我现在可以回答你的这个问题了。
用void*作为二叉树的值域为什么不行,当然如果只是自己用的话,这样做当然可以,但是如果拿出去给别人用,就不行了。
原因在于,二叉树的特性,左小右大,如果由使用者提供比较函数,那么树的特性分分钟被破坏,这不是假设,而是会很快发生的现实。

如果树的特性被破坏,那么一切树的操作(除了遍历)都成了空谈。犹如对未排序的数组使用折半查找。

我想了很久,想不到解决办法,唯一的办法是,只有自己用。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-18 10:31
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 38楼 九转星河
这很明显不会因知道规则就可以避免,我举个例子,所有人都知道吸毒有害,但还是有人吸毒。

快速排序函数,规则是前者大于后者返回正数,否则返回负数。
对吧?
但是你知道如果反过来,让前者大于后者返回负数,否则返回正数可以做到降序排序么?

这样是对规则的破坏吗?我不太清楚,但是排序函数而言,无所谓的,但是换在二叉树上,二叉树的特性就遭到了破坏。


如果代码的编写者,自己来编写比较函数,这对于基本类型是很简单的,但是派生类型呢?结构呢?联合呢?你得写多少的比较函数?

[此贴子已经被作者于2017-5-18 17:41编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-18 17:39
快速回复:这么多天了,搜索二叉树才搞定了最基础的部分(蹉跎了好些岁月,终于搞 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017031 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved