标题:二叉查找树的删除结点问题
只看楼主
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
结帖率:100%
已结贴  问题点数:50 回复次数:3 
二叉查找树的删除结点问题
二叉查找树的删除节点,比如删除图1中的号码4.为什么用这种方式可以删除呢(T = T->Left或者T = T->Right)???(图二中划线的代码句)而不是像单链表的删除那样,首先得知道该元素的前一个元素,(及4的父节点2),然后指向4的下一个节点。(如图3)


2016-05-16 22:39
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
得分:50 
单链表的删除首先得知道该元素的前一个元素   是因为你直接删掉元素你能连上吗?
比如 1 ->2 ->3    要删除2其实是把1指向3,因此需要知道的是2前面的元素的位置
二叉树的删除和这个完全不同啊
2016-05-18 21:42
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
得分:0 
回复 2楼 令狐少侠56
我尝试了下单链表用T = T->Next,顺便没有free();试了下,这不能删除结点。可二叉树却可以实行。我觉得他们都是用链表实现,而且操作都是该元素的前一个元素指针直接指向后一个元素。链表那个我懂。关键是二叉树的删除。。。至于不同之处,可以说明下么?虚心求教

能有一件喜欢的事很不容易,就坚持下去吧.....
2016-05-19 21:10
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
得分:0 
回复 3楼 达尔文
已经过去好久啦,国内有本书叫《数据结构》,陈越主编的。你看下也许就明白了。
2016-06-10 14:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-464901-1-1.html




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

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