| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 570 人关注过本帖
标题:[求助]程序运行得不到结果
取消只看楼主 加入收藏
lmfmp
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-7-6
收藏
 问题点数:0 回复次数:1 
[求助]程序运行得不到结果

建立二叉树,层序,先序遍历
任务:要求能够输入树的各个结点,并能够输出用不同方法遍历的遍里序列;分别建立二叉树存储结构的输入函数.输出层序遍里的函数.输出先序遍里的函数

我写的怎么都不行啊。。。大家帮忙看看完整没有,程序可以运行,可是得不到结果,帮我改一下。。。。。先谢谢大家了,急啊 ,也帮我把思路理一下。。谢谢

#include<iostream.h>
#include<stdlib.h>
#include<strstrea.h>
typedef char ElemType;
struct BTreeNode{
ElemType data;
BTreeNode *left;
BTreeNode *right;
};

void InitBTree(BTreeNode* & BT)
{
BT=NULL;
}
void CreateBTree(BTreeNode*& BT,char* a)
{
BTreeNode* s[30];
int top=-1;
BT=NULL;
BTreeNode* p;
int k;
istrstream ins(a);
char ch;
ins>>ch;
while(ch!='@')
{
switch(ch)
{
case'(':
top++;s[top]=p;k=1;
break;
case')':
top--;
break;
case',':
k=2;
break;
default:
p=new BTreeNode;
p->data=ch;p->left=p->right=NULL;
if(BT==NULL)
BT=p;
else{
switch(k)
{
case 1:
s[top]->left=p;
break;
case 2:
s[top]->right=p;
}
}
}
ins>>ch;
}
}

//前序遍历
void Preorder(BTreeNode* BT)
{
if(BT!=NULL){
cout<<BT->data<<' ';
Preorder(BT->left);
Preorder(BT->right);
}

}
//输出二叉树
void PrintBTree(BTreeNode *BT)
{
if(BT!=NULL)
{
cout<<BT->data;
if(BT->left!=NULL||BT->right!=NULL)
{
cout<<'(';
PrintBTree(BT->left);
if(BT->right!=NULL)
cout<<',';
PrintBTree(BT->right);
cout<<')';
}
}
}

void main()
{
BTreeNode *bt;
InitBTree(bt);
char b[30];
cout<<"输入以'@'字符作为结束符的字符串:"<<endl;
cin.getline(b,sizeof(b));
CreateBTree(bt,b);

Preorder(bt);
}

搜索更多相关主题的帖子: 二叉树 结果 遍历 include 
2006-07-06 16:21
lmfmp
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-7-6
收藏
得分:0 
  谢谢版主,我已用另外的方法实现了,但还是谢谢版主帮忙啊。
2006-07-06 21:19
快速回复:[求助]程序运行得不到结果
数据加载中...
 
   



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

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