数据结构判断两颗二叉树是否相等,用C语言来编程
时间: 2024-05-10 12:14:58 浏览: 13
我们可以通过递归的方式来判断两颗二叉树是否相等,具体实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结构体
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
// 创建二叉树节点
TreeNode* create_node(int val) {
TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));
node->val = val;
node->left = NULL;
node->right = NULL;
return node;
}
// 判断两棵二叉树是否相等
bool is_same_tree(TreeNode* p, TreeNode* q) {
// 如果两个节点都为空,则相等
if (p == NULL && q == NULL) {
return true;
}
// 如果其中一个节点为空,则不相等
if (p == NULL || q == NULL) {
return false;
}
// 如果两个节点值不相等,则不相等
if (p->val != q->val) {
return false;
}
// 递归判断左子树和右子树是否相等
return is_same_tree(p->left, q->left) && is_same_tree(p->right, q->right);
}
int main() {
// 创建两棵二叉树
TreeNode* p = create_node(1);
p->left = create_node(2);
p->right = create_node(3);
TreeNode* q = create_node(1);
q->left = create_node(2);
q->right = create_node(3);
// 判断两棵二叉树是否相等
if (is_same_tree(p, q)) {
printf("两棵二叉树相等\n");
} else {
printf("两棵二叉树不相等\n");
}
return 0;
}
```
上述代码中,我们首先定义了二叉树的结构体,并创建了一个函数 `create_node` 用来创建二叉树节点。接着,我们定义了一个函数 `is_same_tree`,通过递归的方式判断两棵二叉树是否相等。最后,我们创建了两棵二叉树,并调用函数 `is_same_tree` 判断它们是否相等。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)