数据结构C语言,将二叉树以横向树形结构输出显示。
时间: 2024-03-13 15:46:28 浏览: 62
二叉树C语言实现
5星 · 资源好评率100%
要将二叉树以横向树形结构输出,可以使用递归的方式进行实现。下面是一个简单的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
int value;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
void printTree(TreeNode *root, int depth) {
if (root == NULL) {
return;
}
printTree(root->right, depth+1);
for (int i = 0; i < depth; i++) {
printf(" ");
}
printf("%d\n", root->value);
printTree(root->left, depth+1);
}
int main() {
TreeNode *root = (TreeNode*)malloc(sizeof(TreeNode));
root->value = 1;
root->left = (TreeNode*)malloc(sizeof(TreeNode));
root->left->value = 2;
root->left->left = NULL;
root->left->right = NULL;
root->right = (TreeNode*)malloc(sizeof(TreeNode));
root->right->value = 3;
root->right->left = (TreeNode*)malloc(sizeof(TreeNode));
root->right->left->value = 4;
root->right->left->left = NULL;
root->right->left->right = NULL;
root->right->right = (TreeNode*)malloc(sizeof(TreeNode));
root->right->right->value = 5;
root->right->right->left = NULL;
root->right->right->right = NULL;
printTree(root, 0);
return 0;
}
```
在这个示例代码中,我们定义了一个二叉树的结构体,其中包含了一个节点的值,以及其左右子树的指针。然后我们使用递归的方式,先遍历右子树,再输出当前节点的值,最后遍历左子树。在输出当前节点的值时,我们使用一个变量 `depth` 来表示当前节点所处的深度,然后根据深度输出相应的空格,以形成横向树形结构。在 `main` 函数中,我们手动创建了一个二叉树,并将其传递给 `printTree` 函数进行输出。
阅读全文