树是一种比较重要的数据结构,尤其是二叉树。二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
二叉树节点定义:
#define ElementType char
typedef struct Node {
ElementType data;
struct Node *lchild;
struct Node *rchild;
}BinaryTree;
一、二叉树遍历递归遍历算法
1.先序遍历递归遍历算法
/*
(1)先序遍历 递归解法
遍历过程为:
1.访问根节点
2.遍历其左子树
3.遍历其右子树
*/
void PreOrderTraversal(BinaryTree* BT) {
if (BT) {
printf("%c", BT->data);
PreOrderTraversal(BT->lchild);
PreOrderTraversal(BT->rchild);
}
}
2.中序遍历递归遍历算法
/*
(2)中序遍历 递归解法
遍历过程:
1.遍历其左子树
2.访问根节点
3.遍历其右子树
*/
vo