已知前序和中序,输出后序遍历

来源:百度知道 编辑:UC知道 时间:2024/05/27 21:19:37
程序功能: 读入一个10个节点(节点类型为char)的二叉树的前序遍历序列和中序遍历序列,输出它的后续遍历序列。 输入格式要求:先连续输入前序遍历序列(10个字符),中间以任意字符作为间隔,再输入中续遍历序列(10个字符)。
参数:
abd4516c23 4d5b16a2c3
输出:
45d61b23ca

需要进一步解释吗?

#include <stdio.h>

void fun(char* pcReadAt1, char* pcReadAt2, char* pcWriteAt, int iNumOf);

int main()
{
char s1[11], s2[11], s3[11] = "0123456789";
scanf("%s%s", s1, s2);
fun(s1, s2, s3, 10);

printf("%s\n", s3);
return 0;
}

void fun(char* pcReadAt1, char* pcReadAt2, char* pcWriteAt, int iNumOf)
{
// 记录头节点
char cHead = *pReadAt1;
int iNumOfLeft = 0;

// 排错
if ( 0 != iNumOf )
{
// 将头节点写在最后面
pWriteAt[iNumOf - 1] = cHead;

if ( 1 != iNumOf )
{
// 求头节点在中序中的位置

for ( iNumOfLeft = 0; cHead != pcReadAt2[iNumOfLeft]; ++iNumOfLeft );

// 对两个子树
fun(
pcReadAt1 + 1,
pcReadAt2,
pcWr