C语言树状输出二叉树
时间: 2024-08-12 13:06:47 浏览: 37
在C语言中,树状输出二叉树通常使用递归的方式进行,因为二叉树的结构天然适合递归操作。以下是一个简单的示例,展示如何使用前序遍历(根-左-右)的方式来打印二叉树:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树节点结构
typedef struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 前序遍历打印函数
void printPreorder(TreeNode* root) {
if (root == NULL) return; // 如果节点为空,直接返回
printf("%d ", root->val); // 输出当前节点值
printPreorder(root->left); // 递归遍历左子树
printPreorder(root->right); // 递归遍历右子树
}
int main() {
// 创建一个二叉树实例(这里仅作示例)
TreeNode* root = (TreeNode*)malloc(sizeof(TreeNode));
root->val = 1;
root->left = (TreeNode*)malloc(sizeof(TreeNode));
root->left->val = 2;
root->right = (TreeNode*)malloc(sizeof(TreeNode));
root->right->val = 3;
root->left->left = (TreeNode*)malloc(sizeof(TreeNode));
root->left->left->val = 4;
root->left->right = (TreeNode*)malloc(sizeof(TreeNode));
root->left->right->val = 5;
// 打印二叉树
printf("前序遍历结果:");
printPreorder(root);
free(root); // 注意释放内存
return 0;
}
```
阅读全文