修改的地方加了★,楼主看看。
#include
#include
using namespace std;
template
struct BiNode
{
T data;
BiNode
};
template
class BiTree
{
public:
BiTree();
~BiTree();
void PreOrder(BiNode
void InOrder(BiNode
void PostOrder(BiNode
void LevelOrder(BiNode
BiNode
{
return root;
}
private:
BiNode
BiNode
void Creat(BiNode
void Release(BiNode
};
template
void BiTree
{
if(root->data=='#') return;
else
{
cout<
PreOrder(root->lchild);
PreOrder(root->rchild);
}
}
template
void BiTree
{
if(root->data=='#') return;
else
{
InOrder(root->lchild);
cout<
InOrder(root->rchild);
}
}
template
void BiTree
{
if(root->data=='#') return;
else
{
PostOrder(root->lchild);
PostOrder(root->rchild);
cout<
}
}
template
void BiTree
{
int front=0;
int rear=0;
BiNode
BiNode
if(root->data=='#') return;
Q[++rear]=root;
while(front!=rear)
{
q=Q[++front];
cout<
if(q->lchild->data != '#') Q[++rear]=q->lchild; //★尾部的节点的特征是值为 # ,不是左右为 NULL 指针
if(q->rchild->data != '#') Q[++rear]=q->rchild; //★尾部的节点的特征是值为 # ,不是左右为 NULL 指针
}
}
template
BiTree
{
root =new BiNode
Creat(root);
}
template
void BiTree
{
char ch;
cin>>ch;
if(ch=='#')root->data='#';
else
{
root->data=ch;
root->lchild=new BiNode
Creat(root->lchild);
root->rchild=new BiNode
Creat(root->rchild);
}
}
template
BiTree
{
Release(root);
}
template
void BiTree
{
if(root==NULL)
{
Release(root->lchild);
Release(root->rchild);
delete root;
}
}
void main()
{ cout<<"输入要遍历的字符:"<
cout<<"前序遍历:"<
cout<
cout<
cout<
cout<
调试通过。