c语言二元组建树
时间: 2023-08-24 15:13:56 浏览: 65
二元组建树可以使用二叉树来实现。以下是一个简单的C语言程序,用于构建二元组二叉树:
```
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* left;
struct Node* right;
};
struct Node* newNode(int data) {
struct Node* node = (struct Node*)malloc(sizeof(struct Node));
node->data = data;
node->left = NULL;
node->right = NULL;
return node;
}
struct Node* buildTree(int arr[], int start, int end) {
if (start > end)
return NULL;
int mid = (start + end) / 2;
struct Node* root = newNode(arr[mid]);
root->left = buildTree(arr, start, mid - 1);
root->right = buildTree(arr, mid + 1, end);
return root;
}
void inorderTraversal(struct Node* root) {
if (root != NULL) {
inorderTraversal(root->left);
printf("%d ", root->data);
inorderTraversal(root->right);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7};
int n = sizeof(arr) / sizeof(arr[0]);
struct Node* root = buildTree(arr, 0, n - 1);
printf("Inorder traversal of the constructed tree: ");
inorderTraversal(root);
return 0;
}
```
这个程序首先定义了一个二叉树节点结构体 `Node`,包括 `data` 数据、左子节点指针 `left`、右子节点指针 `right`。接着定义了一个 `newNode` 函数,用于创建新的节点,并返回节点指针。`buildTree` 函数用于构建二元组二叉树,使用递归方式实现。最后,`main` 函数构建二元组二叉树,并输出中序遍历结果。