请问如何在一个中序线索二叉树上删除一个节点?
如何在中序线索二叉树上删除一个给定值为key的节点,保持剩下的部分还是一个中序线索二叉树?
一个节点的结构如下: lchild,ltag,data,rtag,rchild
说说思想就可以.有程序说明更好.多谢
问题点数:20、回复次数:5Top
1 楼iwlla(iwlla)回复于 2005-01-09 18:31:58 得分 0
楼主找一本数据结构的书来看看就知道了Top
2 楼muroachanf(阿远之哈儿)回复于 2005-01-09 18:48:45 得分 8
1
2 7
3 6
4 5
删除2节点
1
3 7
4 5
6
不知道对不对,呵呵,我记得好象是这样的,没看书很多年了。就是把左节点填到自己的位置,把右节点扔到左节点的最右最下面的子孙节点后面,不知道这样对不?Top
3 楼bjstcm(快毕业了~~~)回复于 2005-01-09 18:51:43 得分 7
请问楼上的7的父母是什么?这不是个2叉树吧?Top
4 楼muroachanf(阿远之哈儿)回复于 2005-01-09 19:15:05 得分 5
这个CSDN显示有点问题,7的父母是1,可能我中序线索的记忆有误,但解决这类问题有一个简单的办法,挨着线索方法排列数字,如果删除数字后能保证线索的顺序,这个算法就是正确的,不过我记得书上有答案的,我当初就是这么去理解的。Top
5 楼benbebnmao(苯笨猫)回复于 2005-01-10 20:01:12 得分 0
好像这样不行.
要区分要删除的那个节点是否有左子树?右子树?左右子树都有?
就像排序二叉树那样.可能很麻烦Top




