c++菜鸟,求教大神啊啊啊啊

classBinaryTreeNode{friendvoidInOrder(BinaryTreeNode*,chara[],staticinti);friendvoidP... class BinaryTreeNode{
friend void InOrder(BinaryTreeNode*,char a[],static int i);
friend void PreOrder(BinaryTreeNode*,char a[],static int i);
friend void PostOrder(BinaryTreeNode*,char a[],static int i);
friend void LevelOrder(BinaryTreeNode*);
friend void LevelOrder(BinaryTreeNode *t,char a[],static int i);
public:
BinaryTreeNode(){LiftChild=RightChild=0;}
BinaryTreeNode(char e)
{
data=e;
LiftChild=RightChild=0;
}
BinaryTreeNode(char e,BinaryTreeNode *i,BinaryTreeNode *r)
{
data=e;
LiftChild=i;
RightChild=r;
}
private:
char data;
BinaryTreeNode *LiftChild,*RightChild;
};
void LevelOrder(BinaryTreeNode *t,char a[],static int i)//输入一段字符,将其以按层遍历的顺序输入到一个二叉树中,并确定了该树的根
{
BinaryTreeNode* q[50];
q[0]=t;
int k=1,j=0,m;
while(a[i])
{
q[i]->data=a[i];
m=i;
while(m<=k)
{m++;}
q[m]=q[0]->LiftChild;
q[m+1]=q[0]->RightChild;
k+=2;
cout<<q[0]->data<<endl;
i++;
}
}

const int MaxLength =100;
void main()
{
char tree[MaxLength];
cout<<"Input"<<endl;
cin.getline(tree,MaxLength);
BinaryTreeNode* t=new BinaryTreeNode;
LevelOrder(t,tree,0);
}

程序在执行LevelOrder时中断,显示 0xC0000005: 写入位置 0xcccccccc 时发生访问冲突
请问这是什么原因,应该怎么改?
展开
 我来答
龚炜林
2012-12-06 · TA获得超过1560个赞
知道大有可为答主
回答量:1102
采纳率:66%
帮助的人:575万
展开全部
BinaryTreeNode* q[50];
这个只是指针数组,并不是对象,
因此这里q[i]->data=a[i];引发冲突。
更多追问追答
追问
请问该怎么改呢
追答
BinaryTreeNode q[50];
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式