用c语言建立二叉链表T,存储以下二叉树: 任务1.设计函数,先序遍历任务0中建立的二叉树T
时间: 2024-11-09 07:19:44 浏览: 16
头歌数据结构二叉树的二叉链表存储及基本操作
5星 · 资源好评率100%
在C语言中,我们可以使用结构体来表示二叉树节点,并创建一个二叉链表。首先,我们需要定义一个二叉树节点的数据结构:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树节点结构
typedef struct TreeNode {
int val; // 节点值
struct TreeNode* left; // 左子节点指针
struct TreeNode* right; // 右子节点指针
} TreeNode;
// 先序遍历二叉树的辅助函数
void preorderTraversal(TreeNode* node) {
if (node == NULL) return;
printf("%d ", node->val); // 访问当前节点
preorderTraversal(node->left); // 遍历左子树
preorderTraversal(node->right); // 遍历右子树
}
```
接着,你可以按照下面的方式来创建一个简单的二叉树并进行先序遍历:
```c
int main() {
// 创建二叉树节点
TreeNode* root = (TreeNode*)malloc(sizeof(TreeNode));
root->val = 1;
root->left = (TreeNode*)malloc(sizeof(TreeNode));
root->left->val = 2;
root->left->left = NULL;
root->left->right = NULL;
root->right = (TreeNode*)malloc(sizeof(TreeNode));
root->right->val = 3;
root->right->left = (TreeNode*)malloc(sizeof(TreeNode));
root->right->left->val = 4;
root->right->left->left = NULL;
root->right->left->right = NULL;
root->right->right = (TreeNode*)malloc(sizeof(TreeNode));
root->right->right->val = 5;
root->right->right->left = NULL;
root->right->right->right = NULL;
// 先序遍历二叉树
printf("Preorder traversal of the binary tree:\n");
preorderTraversal(root);
// 清理内存
free(root);
return 0;
}
```
上面的代码会打印出先序遍历的结果,如 `1 2 4 5 3`。
阅读全文