标题:[求助]用前序和中序的遍历序列建立二叉树,我的程序错在哪了呢?
只看楼主
alma_a
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-12-11
 问题点数:0 回复次数:3 
[求助]用前序和中序的遍历序列建立二叉树,我的程序错在哪了呢?

我想用二叉树的前序和中序两种遍历序列建立一棵二叉树,并用后序法输出,但编了程序后无法实现,调试时是在从数组里将元素赋给data值时出错,但不明白为什么错,请大家帮我看看吧,谢谢~
#include <iostream>
using namespace std;
class BiNode
{
public:
char data;
BiNode* lchild,* rchild;
};

int locate(char A[],int x);
static int i=0;
char X[10]={'A','B','H','F','D','E','C','K','G','#'};
char Y[9]={'H','B','D','F','A','E','K','C','G'};
void create(BiNode *root);
void PostOrder(BiNode *root);
void main()
{

BiNode *root;//=new BiNode;
// int i=0;
create(root);
PostOrder(root);

}
int locate(char A[],int x)
{
int i=0;
while(x!=A[i])i++;
return i;
}
void create(BiNode *root)
{
root=new BiNode;
root->data =X[i];
if(X[i]=='#') return;
else
{
// if(locate(Y[], X[i+1])<locate(Y[], X[i]))
int n=locate(Y,X[i+1])<locate(Y,X[i]);

if(n)
{
create(root->lchild);
i++;
}
else
{
create(root->rchild);
i++;
}
}

}
void PostOrder(BiNode *root)
{
if(root==NULL)return;
else
{
PostOrder(root->lchild );
PostOrder(root->rchild );
cout<<root->data ;
}
}

搜索更多相关主题的帖子: 二叉树 遍历 序列 和中 
2006-12-11 22:12
alma_a
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-12-11
得分:0 
各位大侠帮帮我啊,拜托啦
2006-12-12 21:59
alma_a
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-12-11
得分:0 
各位大侠帮帮我啊,拜托啦
2006-12-12 22:00
prcman
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-12-13
得分:0 
可惜我没有学过数据结构,要不………………

寒假自学吧~~~~
2006-12-13 10:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-108919-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.354096 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved