已知中序后序求前序

本文介绍了两种方法来根据已知的中序和后序遍历结果构造二叉树的前序遍历。方法一是通过构建二叉树实现,方法二是采用直接递归的方式。
摘要由CSDN通过智能技术生成

方法一:构建二叉树方法

#include<bits/stdc++.h>
using namespace std;
char zh[20],hou[20],qi[20];
struct node{
	char le;
	node *l;
	node *r;
};
int chazhao(char zh[],char ch)
{
	for(int i = 0; i < strlen(zh); i++)
	if(zh[i]==ch) {
		return i;
	}
}
void work(node *q,char *zh ,char *hou)
{
	if(strlen(zh)==0){
//		q = NULL;
		q->le = '0';
		q->l = NULL;
		q->r = NULL;
		return;
	}
	int mid = chazhao(zh,hou[strlen(hou)-1]);
	q->le = hou[strlen(hou)-1];
	
	node *lc=new node,*rc=new node;
	lc->l=NULL;lc->r=NULL;
	rc->l=NULL;rc->r=NULL;
	q->l = lc;
	q->r = rc;
	
	char zhl[20],zhr[20],houl[20],hour[20];
//	 A 
//	A
	strncpy(zhl,zh,mid);zhl[mid] = '\0';//DBFE
	strncpy(zhr,zh+mid+1,strlen(zh)-mid-1);zhr[strlen(zh)-mid-1] = '\0';//CG
	strncpy(houl,hou,mid);houl[mid] = '\0';//DFEB
	strncp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值