注册 登录
编程论坛 数据结构与算法

二叉查找树的删除结点问题

达尔文 发布于 2016-05-16 22:39, 4108 次点击
二叉查找树的删除节点,比如删除图1中的号码4.为什么用这种方式可以删除呢(T = T->Left或者T = T->Right)???(图二中划线的代码句)而不是像单链表的删除那样,首先得知道该元素的前一个元素,(及4的父节点2),然后指向4的下一个节点。(如图3)
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
3 回复
#2
令狐少侠562016-05-18 21:42
单链表的删除首先得知道该元素的前一个元素   是因为你直接删掉元素你能连上吗?
比如 1 ->2 ->3    要删除2其实是把1指向3,因此需要知道的是2前面的元素的位置
二叉树的删除和这个完全不同啊
#3
达尔文2016-05-19 21:10
回复 2楼 令狐少侠56
我尝试了下单链表用T = T->Next,顺便没有free();试了下,这不能删除结点。可二叉树却可以实行。我觉得他们都是用链表实现,而且操作都是该元素的前一个元素指针直接指向后一个元素。链表那个我懂。关键是二叉树的删除。。。至于不同之处,可以说明下么?虚心求教
#4
令狐少侠562016-06-10 14:14
回复 3楼 达尔文
已经过去好久啦,国内有本书叫《数据结构》,陈越主编的。你看下也许就明白了。
1