读书人

二叉树的创建解决方案

发布时间: 2012-02-06 15:52:44 作者: rapoo

二叉树的创建
请教一下,从文件中获得数据如下
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就可以了。

读书人网 >软件架构设计

热点推荐