#include<iostream>
using namespace std;
class queue
{
private:
int top, rear;
int* data;
public:
queue()
{
rear = top = 0;
data = new int[100];
}
void in(queue* p, char value)
{
p->data[top] = value;
top++;
}
void out(queue* p)
{
char temp;
temp = p->data[rear];
rear++;
}
};
struct bitree
{
char data;
bitree* lchirld;
bitree* rchirld;
};
void previsited(bitree* p)
{
if (p)
{
cout << p->data;
previsited(p->lchirld);
previsited(p->rchirld);
}
}
void precin(bitree*& s)
{
char value;
cin >> value;
if (value != '#')
{
s = new bitree;
s->data = value;
s->lchirld = new bitree;
s->rchirld = new bitree;
precin(s->lchirld);
precin(s->rchirld);
}
else
{
s = NULL;
}
}
//层序遍历
void levelprint(queue*& p, bitree* q)
{
if (q)
{
p->in(p, q->data);
if (q->lchirld != NULL)
{
p->in(p, q->lchirld->data);
}
if (q->rchirld)
{
p->in(p, q->rchirld->data);
}
levelprint(p, q->lchirld);
levelprint(p, q->rchirld);
}
}
void main()
{
bitree* bt;
queue* q;
precin(bt);
levelprint(q, bt);
cout << endl;
}
程序在第一次执行in函数时的第一个语句中止,目的是进队列,谁能帮我看一下怎么回事