要加油啊
C++ 中的 new
运算符用于动态分配内存,通常用于创建对象或分配数组。它返回一个指向新分配内存的指针,并在分配失败时抛出 std::bad_alloc
异常。
#include<iostream>
#include<algorithm>
using namespace std;
typedef char ElemType;
typedef struct BiTNode {
ElemType data;
struct BiTNode* lchild, * rchild;
}BiTNode,*BiTree;
//初始化
bool InitBiTree(BiTree& T)
{
ElemType ch;
cin >> ch;
if (ch == '#')
{
T = NULL;
}
else
{
T = (BiTNode*)malloc(sizeof(BiTNode));
T->data = ch;
InitBiTree(T->lchild);
InitBiTree(T->rchild);
}
return true;
}
//打印结点
void visit(BiTNode* p)
{
cout << p->data;
}
//先序遍历
void PreOrder(BiTree T)
{
if (T == NULL)
{
return;
}
visit(T);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
//中序遍历
void InOrder(BiTree T)
{
if (T == NULL)
{
return;
}
InOrder(T->lchild);
visit(T);
InOrder(T->rchild);
}
//后序遍历
void PostOrder(BiTree T)
{
if (T == NULL)
{
return;
}
PostOrder(T->lchild);
PostOrder(T->rchild);
visit(T);
}
int main()
{
BiTree T;
InitBiTree(T);
cout << "先序遍历结果" << endl;
PreOrder(T);
cout << endl;
cout << "中序遍历结果" << endl;
InOrder(T);
cout << endl;
cout << "后序遍历结果" << endl;
PostOrder(T);
cout << endl;
return 0;
}