1. 编写程序,创建二叉树,对二叉树进行先序遍历,并打印层号。(必做题)C语言代码
时间: 2024-01-23 18:13:03 浏览: 84
好的,这是一道关于二叉树的基础编程题目,下面是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树节点结构体
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
// 先序遍历并打印层号
void pre_order(TreeNode* root, int depth) {
if (!root) {
return;
}
printf("层号: %d, 节点值: %d\n", depth, root->val);
pre_order(root->left, depth+1);
pre_order(root->right, depth+1);
}
// 创建二叉树
TreeNode* create_tree() {
char val[1024];
scanf("%s", val);
if (val[0] == 'N') {
return NULL;
}
TreeNode* root = (TreeNode*)malloc(sizeof(TreeNode));
root->val = atoi(val);
root->left = create_tree();
root->right = create_tree();
return root;
}
// 测试代码
int main() {
TreeNode* root = create_tree();
pre_order(root, 1);
return 0;
}
```
在运行程序时,会要求您逐个输入节点值,其中用 N 表示空节点。程序会根据输入的节点值创建二叉树,并对其进行先序遍历,并打印出每个节点的层号和节点值。
阅读全文