数据结构(C语言版) 树和二叉树 算法设计Demo2

Posted Aiden (winner)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构(C语言版) 树和二叉树 算法设计Demo2相关的知识,希望对你有一定的参考价值。

判别两棵树是否相等。

[题目分析]

先判断当前节点是否相等(需要处理为空、是否都为空、是否相等),如果当前节点不相等,直接返回两棵树不相等;如果当前节点相等,那么就递归的判断他们的左右孩子是否相等。

[算法描述]

int compareTree(TreeNode* tree1, TreeNode* tree2)
//用分治的方法做,比较当前根,然后比较左子树和右子树
	bool tree1IsNull = (tree1==NULL);
	bool tree2IsNull = (tree2==NULL);
if(tree1IsNull != tree2IsNull)
	return 1;

if(tree1IsNull && tree2IsNull)
//如果两个都是NULL,则相等
	return 0;
//如果根节点不相等,直接返回不相等,否则的话,看看他们孩子相等不相等
if(tree1->c != tree2->c)
 return 1;

return	(compareTree(tree1->left,tree2->left)&compareTree(tree1->right,tree2->right))
		(compareTree(tree1->left,tree2->right)&compareTree(tree1->right,tree2->left));
//算法结束

以上是关于数据结构(C语言版) 树和二叉树 算法设计Demo2的主要内容,如果未能解决你的问题,请参考以下文章

数据结构(C语言版) 树和二叉树 算法设计Demo3

数据结构(C语言版) 树和二叉树 算法设计Demo6

数据结构(C语言版) 树和二叉树 算法设计Demo4

数据结构(C语言版) 树和二叉树 算法设计Demo2

数据结构(C语言版) 树和二叉树 算法设计Demo7

数据结构C语言版 —— 树和二叉树的概念