首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

二叉树的创建解决方案

2012-02-06 
二叉树的创建请教一下,从文件中获得数据如下5123245300400500第一个数字是结点个数,从第二行起,第一列是结

二叉树的创建
请教一下,从文件中获得数据如下
5
1   2   3
2   4   5  
3   0   0
4   0   0
5   0   0
第一个数字是结点个数,从第二行起,第一列是结点的序号,第二行数左孩子,第二行是右孩子,没有孩子则是0
按这样的格式怎么样才能用递归创建二叉树呢??
二叉树的结构体是
struct   node
{
int   data;
node   *lchild,*rchild;
}
或者用非递归的方式也可以,请教了!!!(c/c++)

[解决办法]
========================================
这样创建出来的树遍历是不是就麻烦了点
=========================================

遍历不会麻烦啊,虽然这和那些教材上的树的表面形态不同,但本质是一样的啊。遍历的时候,只需要知道树的根就可以了,树根可以在输入数据时得到啊。有了树根,什么先序遍历啊,中序遍历啊,后序遍历啊,层次遍历啊,就很容易了啊,任何一本教材上都有的。

==================================================
这样创建的时候结点的数据那里去了啊???
==================================================
在楼主给的输入格式中,并没有节点的数据啊。如果楼主指的节点数据是“结点的序号”的话,由我给的代码,稍微改动一下就可以了:只需要将变量No赋给节点数据域data就可以了。

热点排行