1.前言
二叉树是一个双亲结点只有两个孩子结点,其遍历方法主要有:
前序遍历:根左右
中序遍历:左根右
后序遍历:左右根
2.代码
2.1.二叉树的建立
struct BiT_node
{
int data;
struct BiT_node *lchild; //定义左右孩子指针
struct BiT_node *rchild;
};
void CreatBinaryTree(BiT_node *T1) //创建二叉树
{
int ch;
cout << "请输入二叉树前序遍历字符数据,空用0替代:" << endl;
cin >> ch;
if(ch == 0)
{
T1 = nullptr;
}
else
{
T1->lchild = new BiT_node;
T1->rchild = new BiT_node;
T1->data = ch;
CreatBinaryTree(T1->lchild);
CreatBinaryTree(T1->rchild);
}
}
主要是要进行递归,实现对左右孩子结点的创建。注意每次递归前,需要对左右孩子结点的指针开辟新空间,若不开辟则会出现段错误等问题。因为本程序运行后就结束,可以不用delete
2.2.遍历算法
void PreOrderTraverse(BiT_node *T1); //前序遍历
void InOrderTraverse(BiT_node *T