qq_36865094 2016-11-29 08:25 采纳率: 80%
浏览 1086
已采纳

求c++大神!帮忙改程序!要求是输入先序中序得出后序,并打印二叉树。

结果例如输入:先序ABCDE,中序BADCE
输出:后序BDECA并打印二叉树
A
|_B
|_C
|_D
|_E
代码如下
#include
#include "stdio.h"
using namespace std;

class BinarytreeNode
{
public:
int data;
BinarytreeNode *left;
BinarytreeNode *right;
BinarytreeNode(int value=0, BinarytreeNode *l=NULL,BinarytreeNode *r=NULL):data(value),left(l),right(r)
{}

};

BinarytreeNode* createtree(int *in, int *pre, int n)
{
if(n==0) return NULL;
int k=0;
while(pre[0]!=in[k]){k++;}
BinarytreeNode *rootelement=new BinarytreeNode(pre[0]);//应该不会内存泄露的,程序结束时,对象调用析构函数,自动释放
rootelement->left=createtree(pre+1,in,k);
rootelement->right=createtree(pre+k+1,in+k+1,n-k-1);
return rootelement;

}

void printelement(BinarytreeNode *element)
{
cout<data<<",";
}

void postorder(BinarytreeNode *subtree)
{

 if(subtree!=NULL)
 {
 postorder(subtree->left);
 postorder(subtree->right);
 printelement(subtree);
 }

}

int main()
{
int pre[7]={1,2,4,5,3,6,7};
int in[7]={4,2,5,1,6,3,7};
BinarytreeNode *element=createtree(in,pre,7);

postorder(element);
while(1); 

return 0;

}

  • 写回答

2条回答 默认 最新

查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器