数据结构——简单实现森林转化为二叉树

孩子兄弟表示法的理解与代码实现|树转化为二叉树
森林是由若干棵树组成,可以将森林中的每棵树的根结点看作是兄弟,由于每棵树都可以转换为二叉树,所以森林也可以转换为二叉树。

将森林转换为二叉树的步骤是:
(1)先把每棵树转换为二叉树;
(2)第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树的根结点的右孩子结点,用线连接起来。当所有的二叉树连接起来后得到的二叉树就是由森林转换得到的二叉树。在这里插入图片描述

森林转化为二叉树的实现

网上这个例子代码没找到几个
自己想了想方法有这几个
1.把多个树变为森林,当你将树转化为二叉树的时候,紧接着可以在根结点的右孩子那输入新的树,这样就完成了森林的构造。
在这里插入图片描述

2.依次将树转化为二叉树,然后判断第一个树(二叉树形式)的右孩子是否存在,(应该是不存在)然后将第二个树的根结点作为第一个树的右孩子这样就连接了。

根据树的数量重复上面操作。

在这里插入图片描述

Status CreatForst(Node &T1, Node &T2)
{
    
    
	
	if (T1->next_sib != NULL)
	{
    
    
		CreatForst(T1->next_sib,T2);
		
	}
	else
	{
    
    
		T1->next_sib = T2;
		//return 0;
	}
	return 0;
}

加上上面这个部分就行
孩子兄弟表示法的理解与代码实现|树转化为二叉树

猜你喜欢

转载自blog.csdn.net/weixin_46096297/article/details/112546559