二叉树实战和进阶
我们将通过代码来实现以下这个二叉树的各种操作。
代码实现
数据结构
在这个例子中,我们将字符型作为ElemType
,使用链表构成二叉树数据,结点包括数据、指向左右孩子的结点指针:
typedef struct Node {
char data;
struct Node *lchild, *rchild;
} BTNode, *BTNodeP;
创建
我们使用递归来创建一个二叉树:
步骤:
1、如果输入字符为#,将当前子树置为空
2、如果输入字符不为#,先申请一块内存空间,用来放置输入的数据;然后分别对左子树和右子树重复执行这个创建方法;
3、当所有结点的左子树和右子树安排完毕后,函数结束。
/**
* 创建二叉树
* @param T 指向树指针的指针
*/
void CreateBiTree(BTNodeP *T) {
char ch;