c++课程设计

zx8690 2008-12-03 10:36:12
要求:输入一棵树的各个节点信息,输出各种遍历的序列(先根、后根、中根、层次)。输入其中两种遍历序列,试图构造出该树,并输出其他两种遍历序列。

哪位高手可以给解答下
...全文
118 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦之安魂曲 2008-12-05
  • 打赏
  • 举报
回复
//二叉树的三种遍历
#include<iostream.h>
typedef char elemtype;
struct bitree
{
elemtype data;
bitree *lchild,*rchild;
};
bitree *create()
{ bitree *root,*s,*q[100];
int front=1,rear=0;
char ch;
root=NULL;
cout<<"请输入结点值,‘,’为虚结点,‘#’结束"<<endl;
cin>>ch;
while(ch!='#')
{ s=NULL;
if(ch!=',')
{ s=new bitree;
s->data=ch;
s->lchild=NULL;
s->rchild=NULL;
}
rear++;
q[rear]=s;
if(rear==1) root=s;
else
{ if((s!=NULL)&&(q[front]!=NULL))
{ if(rear%2==0) q[front]->lchild=s;
else q[front]->rchild=s;}
if(rear%2==1) front++;
}
cin>>ch;}
return root;
}
void preorder( bitree *root)
{ bitree *p;
p=root;
if(p!=NULL)
{ cout<<p->data;
preorder(p->lchild);
preorder(p->rchild);
}
}
void preorder1(bitree *root)
{ bitree *p,*s[100];
int top=0;
p=root;
while((p!=NULL)||(top>0))
{ while(p!=NULL)
{cout<<p->data<<" ";
s[++top]=p;
p=p->lchild;
}
p=s[top--];
p=p->rchild;
}
}

void inorder( bitree *root)
{ bitree *p;
p=root;
if(p!=NULL)
{
inorder(p->lchild);
cout<<p->data<<" ";
inorder(p->rchild);
}
}
void inorder1( bitree *root)
{ bitree *p,*s[100];
int top=0;
p=root;
while((p!=NULL)||(top>0))
{ while(p!=NULL)
{s[++top]=p;p=p->lchild;}
{p=s[top--];
cout<<p->data<<" ";
p=p->rchild;
}
}
}
void postorder( bitree *root)
{ bitree *p;
p=root;
if(p!=NULL)
{
postorder(p->lchild);
postorder(p->rchild);
cout<<p->data<<" ";
}
}
void postorder1( bitree *root)
{ bitree *p,*s1[100];
int s2[100],top=0,b;
p=root;
do
{ while(p!=NULL)
{s1[top]=p;s2[top++]=0;
p=p->lchild;}
if(top>0)
{b=s2[--top];
p=s1[top];
if(b==0)
{s1[top]=p;s2[top++]=1;
p=p->rchild;}
else
{cout<<p->data<<" ";
p=NULL;
}
}
}while(top>0);
}
void main()
{ bitree *root;
root=create();
cout<<"先序遍历的结果"<<endl;
preorder(root);cout<<endl;
preorder1(root);cout<<endl;
cout<<"中序遍历的结果"<<endl;
inorder(root);cout<<endl;
inorder1(root);cout<<endl;
cout<<"后序遍历的结果"<<endl;
postorder(root);cout<<endl;
postorder1(root);cout<<endl;
}
love514425 2008-12-05
  • 打赏
  • 举报
回复
> 基本的树的遍历
jieao111 2008-12-05
  • 打赏
  • 举报
回复
我的资源里有
program2050 2008-12-05
  • 打赏
  • 举报
回复
等你独立完成了,你对指针等等就有更深的理解了。
这是你提升你编程能力的好机会!
加油!
tsoslience 2008-12-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bobye1230 的回复:]

你还知道来这问,不错不错~~

想我当年,压根就不知道有这么个地方~。~
[/Quote]
想当年都是网上down的
bobye1230 2008-12-04
  • 打赏
  • 举报
回复

你还知道来这问,不错不错~~

想我当年,压根就不知道有这么个地方~。~
asksgp 2008-12-03
  • 打赏
  • 举报
回复
是哦,数据结构都有
lann64 2008-12-03
  • 打赏
  • 举报
回复
就这么简单个问题还不自己做?
ypb362148418 2008-12-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qq675927952 的回复:]
找本数据结构数好好看一下,里面都有。。。。。
[/Quote]
楼上说的没错,数据结构里都有的
qq675927952 2008-12-03
  • 打赏
  • 举报
回复
找本数据结构数好好看一下,里面都有。。。。。
内容简介 《C++程序设计》作者深入调查了我国大学的程序设计课程的现状和发展趋势,参阅了国内外数十种有关C++的教材,认真分析了学习者在学习过程中遇到的困难,研究了初学者的认识规律。在本书中做到准确定位,合理取舍内容,设计了读者易于学习的教材体系,并且以通俗易懂的语言化解了许多复杂的概念,大大减少了初学者学习C++的困难。C++是近年来国内外广泛使用的现代计算机语言,它既支持面向过程的程序设计,也支持基于对象和面向对象的程序设计。国内许多高校已陆续开设了C++程序设计课程。但是,由于C++涉及概念很多,语法比较复杂,内容十分广泛,使不少人感到学习难度较大,难以入门。 考虑到许多读者在学习C++前未学过其他语言,本书把入门起点降低,读者不需要具备C语言的基础。本书包括14章,分为4篇:基本知识;面向过程的程序设计;基于对象的程序设计;面向对象的程序设计。本书内容全面,例题丰富,概念清晰,循序渐进,易于学习。 《C++程序设计》是依据ANSI C++标准进行介绍的,引导读者从一开始就按标准C++的规定编程。本书配有两本辅导教材,即《C++程序设计题解与上机指导》和《C++编程实践指导》。 C++程序设计》是大学各专业学生学习C++的基础教材,也是适于初学者学习的教材。即使没有教师讲授,读者也能看懂本书的大部分内容。

65,184

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧