重点内容
本文是简单的用递归的方法实现了二叉树
虽然看似是C++ 实际上使用C的风格完成的
之后会补上C++的代码。
二叉树的节点建立
typedef char ElemType;
#define END '#'
typedef struct BtNode
{
ElemType data; //数据域
BtNode *leftchild;//左孩子
BtNode *rightchild;//右孩子
}BtNode, *BinaryTree;
对于二叉树首先我们得实现三种遍历
先序遍历/前序遍历
void PreOrder(BtNode *p)
{
if (p != NULL)
{
cout << p->data << endl;
PreOrder(p->leftchild);
PreOrder(p->rightchild);
}
}
中序遍历
void InOrder(BtNode *p)
{
if (p != NULL)
{
InOrder(p->leftchild);
cout << p->data << endl;
InOrder(p->rightchild);
}
}
后序遍历
void PostOrder(BtNode *p)
{
if (p != NULL)
{
PostOrder(p->