求救啊!!关于二叉树在C++中的先序建立还是有问题!!!!

mandahan 2009-06-17 07:37:51
就是建立二叉树时是按照前序遍历的思路来插入节点的比如
这样输入顺序为ABCффDEфGффFффф
最终建立出的二叉树为
A

B

C D

X X E F

X G

X X
X为NULL
其中ф为NULL
还是有为问题啊
大家看看这里该怎么办
template <class entry>
Error_code binary_tree <entry>::insert(const entry&x)
{
return the_insert(root,x);
}

binary_tree <entry>::the_insert(binary_node <entry>*&sub_root,const entry&x)
{
if(sub_root==NULL)
{
sub_root=new binary_node <entry>(x);
return success;
}
else if (x==' ')
left=NULL; ..........这之后如何插入右支
else
return the_insert(sub_root->left,x);
.................这之后就不会写了,谁能帮忙看看
...全文
49 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wbgxx 2009-06-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hikaliv 的回复:]
楼主好漂亮。
[/Quote]


colour worlf
ysysbaobei 2009-06-19
  • 打赏
  • 举报
回复
顶下
慧眼识狗熊 2009-06-18
  • 打赏
  • 举报
回复
回答过好几个二叉树的,都不结贴。。

郁闷我。。。。

这次我就围观算了。。
xiang7fei 2009-06-18
  • 打赏
  • 举报
回复
围观了...UP~~
mandahan 2009-06-17
  • 打赏
  • 举报
回复
对于递归完全是一知半解
光宇广贞 2009-06-17
  • 打赏
  • 举报
回复
楼主会递归么?这需要楼主去自学一下……
jiangnanxiaozi 2009-06-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hikaliv 的回复:]
楼主好漂亮。
[/Quote]嘿嘿~~~~~
binary_tree <entry>::the_insert(binary_node <entry>*&sub_root,const entry&x)
{if(sub_root==null&&x!='@')//@代表空格
sub_root=new binary_node(x);
else return;
the_insert(sub_root->left,x);
the_insert(sub_root->right,x);
}

光宇广贞 2009-06-17
  • 打赏
  • 举报
回复
还怎么说呢……

手把手给你画个图就好了……嘿嘿。

我觉得已经说得挺清楚的了,就是说我不知道还怎么能给美女楼主说得更清楚……唉……这个……

就是插入结点,不断往树的左枝插入,直到子叶为NIL,就是空,就是空格,然后便回递父结点,找到没有右子的父结点,再插一个结点到父结点的右子,这个右子的结点将是它所领导的子树的根结点,这个楼主需要明确,那么这棵子树的建立就可以使用递归了,因为子问题与父问题相同,这符合迭代的定义。如是往复,直到最后递归回树的根结点,所有的结点的子结点都满了,插入结束。
xuexi1028 2009-06-17
  • 打赏
  • 举报
回复
左根 右 。,,,,
递归 递归 在递归
懂递归的思想就行了 ,,,
你做只要是判空而已
光宇广贞 2009-06-17
  • 打赏
  • 举报
回复
就是一个不断往左子插入——插入——插入
然后遇到两个子叶为空格的就是NIL叶子,那就回溯上去到还没有右子的结点,插入下一个结点,这个结点可以看做一个子树的根——这个楼主理解吧……所以就可以递归了……
如是往复,不断地插入——插入——插入

就完成了……
mandahan 2009-06-17
  • 打赏
  • 举报
回复
求高手啊!!!
光宇广贞 2009-06-17
  • 打赏
  • 举报
回复
楼主好漂亮。
mandahan 2009-06-17
  • 打赏
  • 举报
回复
其中ф为空格
下面的if中的x==' '.......引号中的内容为空格
Sou2012 2009-06-17
  • 打赏
  • 举报
回复
等高手来

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧