您好、欢迎来到现金彩票网!
当前位置:秒速时时彩 > 搜索树 >

c语言2叉查找树问题

发布时间:2019-07-07 05:50 来源:未知 编辑:admin

  初始化树时向空树中插入节点,1.若比根结点大:且根节点无右孩子,则插入到根节点的右孩子上;若根节点有右孩子,则root=root-right。2.若比根节点小:且根节点无左孩子,则插入到根...

  初始化树时向空树中插入节点,1.若比根结点大:且根节点无右孩子,则插入到根节点的右孩子上;若根节点有右孩子,则root=root-right。2.若比根节点小:且根节点无左孩子,则插入到根节点的左孩子上;若根节点有左孩子,则root=root-left。重复上述过程,直到找到插入位置。

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  还有知道你为什么InOrder会执行不了吗?因为你的NODE node[LEN]是在栈上分配的,出了函数就会释放,想执行得分配内存,下面的代码没释放内存,你自己收拾一下吧:

  }追问刚学指针不太明白,为什么改成tree=adjust(tree,就可以了呢,这里为什么要用地址?而且按照您说的修改之后,inorder只能输出1和2。为什么3不能输出呢?追答

  简单,你要把节点node挂在树上,要么先给树分配一个节点,再把值拷贝上去,要么把整个节点都挂上去,你用的就是把整个节点挂上去的思路,这个就只能把树的相应节点指向整个节点的地址了,那么你传过去的就只能是地址了。有点抽象吧,给你看个小代码:

  你输出看看,你要用的不就是参数a的地址吗?跟你传进去的地址是不是一样?这就说明了为什么不能通过传值来获取地址,只能通过传指针来获取地址

  你不能输出3是因为你根本就没有3的node,你的node只有0,1,2,而且你的头0没有输出而已,设计时先设计好,可以把用一个节点作头,左子树为空,右子树为你真正的头,也可以封装一个函数,先输出头,再递归输出左右子树,你这是直接递归了。

http://golfsandpiper.com/sousuoshu/630.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有