怎么删除二叉树根结点

论坛 期权论坛 期权     
静·葉飘零   2018-4-26 14:00   5299   3
运用二叉排序树的思想,如下图所示
删除根结点 16 ,head指向16,所以,用
p=head;
head=head->leftchild;
free(p);p=NULL;
一使用free()周游树时就出现乱码,不使用free()的话,删除部分总在末尾出现,
如正常来说,删除后对称序周游应该是 5  7  10  ...运用二叉排序树的思想,如下图所示
删除根结点 16 ,head指向16,所以,用
p=head;
head=head->leftchild;
free(p);p=NULL;
一使用free()周游树时就出现乱码,不使用free()的话,删除部分总在末尾出现,
如正常来说,删除后对称序周游应该是 5  7  10  17  21
它每次都出现  5  7  10  17  21  16 17 21
求高手指点一下,到底怎么删得彻底一点展开

分享到 :
0 人收藏

3 个回复

倒序浏览
2#
热心网友  15级至尊 | 2018-4-30 01:55:24 发帖IP地址来自
你这个是顺序的二叉数,当删除根节点时,应将根节点指向其右子树的最左,即最小的节点
3#
热心网友  15级至尊 | 2018-4-30 01:55:25 发帖IP地址来自
怎么删除二叉树根结点
叉树的根节点当然可以删除啊,当左右子树都为空时,可以删除,强制性删除也可以啊,不过要从树的左子树下选一个结点来当根节点,不然,就会破坏二叉树的结构!
4#
热心网友  15级至尊 | 2018-4-30 01:55:26 发帖IP地址来自
叉树的根节点当然可以删除啊,当左右子树都为空时,可以删除,强制性删除也可以啊,不过要从树的左子树下选一个结点来当根节点,不然,就会破坏二叉树的结构!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP