#include "LinkQueue.h"
#include "LinkStack.h"
int main()
{
TreeNodePtr BT;
TreeNodePtr CreateBitree();
int BiTreeTranc(TreeNodePtr);
printf("Input:\n");
BT= CreateBitree();
BiTreeTranc(BT);
return 0;
}
TreeNodePtr CreateBitree()
{
LinkQueue q;
TreeNodePtr bt, p, R;
char a, b, S;
InitQueue(&q);
bt=NULL;
printf("请输入节点的双亲、节点及LR标记值:");
scanf("%c", &a);
scanf("%c", &b);
scanf("%c", &S);
while (b!='#')
{
p= (TreeNodePtr)malloc(sizeof(TreeNodePtr));
p->data= b;
p->Lch= NULL;
p->Rch= NULL;
if (a=='#')
{
bt= p;
EnQueue(&q, p);
}
else
{
GetHead_Q(q, &R);
while(R->data!= a)
{
DeQueue(&q, &R);
GetHead_Q(q, &R);
}
if (S=='L')
{
R->Lch= p;
}
else
{
R->Rch= p;
DeQueue(&q, &R);
}
EnQueue(&q, p);
}
printf("请输入节点的双亲、节点及LR标记值:");
scanf("%c", &a);
while(a =='\n')
scanf("%c", &a);;
scanf("%c", &b);
scanf("%c", &S);
}
return bt;
}
int BiTreeTranc(TreeNodePtr BT)
{
LinkStack S;
TreeNodePtr p;
printf("Output:\n");
printf("该二叉树的前序遍历结果为:");
InitStack(&S);
ClearStack(&S);
p=BT;
while(1)
{
if (p==NULL)
{
if (StackIsEmpty(&S))
{
printf("\n");
return 0;
}
else
{
Pop(&S, &p);
p= p->Rch;
}
}
else
{
printf("%c", p->data);
Push(&S, p);
p= p->Lch;
}
}
}
运行报错如下:
doubletreef.cpp
e:\course\c++\doubletreef.cpp(1) : fatal error C1083: Cannot open include file: 'LinkQueue.h': No such file or directory
Error executing cl.exe.
doubletreef.obj - 1 error(s), 0 warning(s)
求高手指点
慕粉2356025026
相关分类