0022 c++每日一题(普及)

论坛 期权论坛 期权     
码农小小李   2019-7-13 07:51   1436   0
今日题目
[h1]题目描述[/h1]
小明在学习树这种数据结构,拿这道题来练习。现在有一棵N个结点的二叉树,结点编号是 1,2,...,N。他想知道这棵树先序、中序、后序三种方式遍历的结果。
[h1]输入[/h1]
第 1 行 2 个整数 N、R(N0){[/code]
  1.     aft(lch[fa]);  
复制代码
  1.     aft(rch[fa]);
复制代码
  1.     visit(fa);  
复制代码
  1.   }
复制代码
  1. }
复制代码
然后再加上主函数的输入输出就ok了
  1. #include
复制代码
  1. #include
复制代码
  1. using namespace std;
复制代码
  1. int n,r,v[101],lch[101],rch[101];
复制代码
  1. void visit(int a)
复制代码
  1. {
复制代码
  1.   printf("%d ",a);
复制代码
  1.   
复制代码
  1. }
复制代码
  1. void pre(int fa){
复制代码
  1.   if(fa>0){
复制代码
  1.     visit(fa);
复制代码
  1.     pre(lch[fa]);
复制代码
  1.     pre(rch[fa]);
复制代码
  1.   }
复制代码
  1. }
复制代码
  1. void mid(int fa){
复制代码
  1.   if(fa>0){
复制代码
  1.     mid(lch[fa]);
复制代码
  1.     visit(fa);   
复制代码
  1.     mid(rch[fa]);
复制代码
  1.   }
复制代码
  1. }
复制代码
  1. void aft(int fa){
复制代码
  1.   if(fa>0){
复制代码
  1.     aft(lch[fa]);  
复制代码
  1.     aft(rch[fa]);
复制代码
  1.     visit(fa);  
复制代码
  1.   }
复制代码
  1. }
复制代码
  1. [/code][code]int main()
复制代码
  1. {  
复制代码
  1.   scanf("%d%d",&n,&r);
复制代码
  1.   for(int i=1;i>v[i]>>lch[i]>>rch[i];
复制代码
  1.   pre(r);
复制代码
  1.   printf("\n");
复制代码
  1.   mid(r);
复制代码
  1.   printf("\n");
复制代码
  1.   aft(r);
复制代码
  1.   return 0;  
复制代码
  1. }
复制代码


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:15
帖子:3
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP