正文

求二叉树的先序序列2007-08-24 21:17:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lingdlz/28825.html

分享到:

描述 Description
    给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度≤8)。
输入格式 Input Format
  第一行为二叉树的中序序列
第二行为二叉树的后序序列
输出格式 Output Format
  一行,为二叉树的先序序列

/////////////

#include <iostream>
using namespace std;

void print(char *midOrder, char *backOrder){
 if(strlen(backOrder)==0)
  return ;
 char c = backOrder[strlen(backOrder)-1];
 cout<<c;
 unsigned i;
 for(i=0; i<strlen(midOrder)-1; i++){
  if(midOrder[i]==c)
   break;
 }
 char *rmid = new char[strlen(midOrder)-i];
 char *rback = new char[strlen(midOrder)-i];
 strcpy(rmid,&midOrder[i+1]);
 backOrder[strlen(backOrder)-1] = '\0';
 strcpy(rback,&backOrder[i]);
 midOrder[i] = '\0';
 backOrder[i] = '\0';
 print(midOrder,backOrder);
 print(rmid,rback);
 delete[] rmid;
 delete[] rback;
}

int  main(){
 char midOrder[10],backOrder[10];
 cin>>midOrder>>backOrder;
 print(midOrder,backOrder);
 return 0;
}

阅读(3765) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册