(1)用C语言定义基于二叉链表的结点结构。 (2)二叉树创建:基于先序遍历的二叉链表方式存储。 (3)实现二叉树操作: 输出二叉树的节点;输出二叉树的叶子结点; 二叉树的高度。
时间: 2024-11-15 08:13:28 浏览: 0
(1)用C语言定义基于二叉链表的结点结构,可以如下所示:
```c
typedef struct TreeNode {
int val; // 节点值
struct TreeNode* left; // 左子节点指针
struct TreeNode* right; // 右子节点指针
} TreeNode;
```
这里定义了一个名为`TreeNode`的结构体,包含一个整数值`val`、指向左子节点的指针`left`以及指向右子节点的指针`right`。
(2)二叉树创建,如果我们采用先序遍历的方式(根节点 -> 左子树 -> 右子树),可以在递归函数中实现,例如:
```c
void insertPreorder(TreeNode** root, int value) {
if (*root == NULL) {
*root = (TreeNode*)malloc(sizeof(TreeNode));
(*root)->val = value;
(*root)->left = (*root)->right = NULL;
} else {
if (value < (*root)->val)
insertPreorder(&(*root)->left, value);
else
insertPreorder(&(*root)->right, value);
}
}
```
这个函数用于插入一个新的值到给定的二叉搜索树中。
(3)二叉树的操作实现如下:
- 输出二叉树的节点:遍历树并打印节点值,可以用前序、中序或后序遍历,也可以自定义访问顺序。
- 输出二叉树的叶子结点:检查当前节点是否有左右子节点即可。
- 计算二叉树的高度:可以使用递归或迭代的方式,计算从根到最深叶子节点的最大深度。
阅读全文