数据结构中,如果树的节点类型不同,则该如何建立这棵树

[复制链接]
查看11 | 回复3 | 2008-11-4 17:28:53 | 显示全部楼层 |阅读模式
具体来说:
比如一棵二叉树,它的节点都是不同类型的结构体,那么该如何去建立这棵二叉树呢
望各位高手谈谈思路
问题的关键是:比如一个多叉树,它的插入函数如下
struct TNode
{
.....
struct TNode *ichild[N];
};
void insert(TNode *root,TNode_1 item)
{
.....
//如果找到了合适的位置就插入新节点
root->ichild=(TNode_1*)malloc(sizeof(TNode_1));

}
在这里,问题是root->ichild的类型和需要插入的节点类型TNode_1不一样;即父节点与将要插入的 子节点类型不一样
这可以通过类的继承来解决。。。不知道各位怎么想的?

回复

使用道具 举报

千问 | 2008-11-4 17:28:53 | 显示全部楼层
可以在树的节点上设置一个字段,表示节点的类型,就可以了啊 只要你自己根据节点类型,去申请,释放和操作节点,是没有问题的 其实,很多系统里面的控件树,就是这样的一棵树,节点有可能是列表框,也有可能是按钮。...
回复

使用道具 举报

千问 | 2008-11-4 17:28:53 | 显示全部楼层
用继承的思路是正确的,这涉及到“容器”概念,建议往这方面钻研!...
回复

使用道具 举报

千问 | 2008-11-4 17:28:53 | 显示全部楼层
建立树的节点时,定义多个域来说明。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行