| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 587 人关注过本帖
标题:新手求帮助!已知二叉树的前序和中序结果,求后序。
只看楼主 加入收藏
hxtk007
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-6-6
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
新手求帮助!已知二叉树的前序和中序结果,求后序。
新手求帮助,写出函数char *PostOrder(char *PreOrder,char *InOrder);
已知二叉树的前序(PreOrder)和中序(InOrder)结果求后序。
请问一下需要补充什么谢谢
char *PostOrder(char *PreOrder,char *InOrder);
{
}
main()
{
   char s[1000]={0};
   char t[1000]={0};
   scanf("%s%s",s,t);
   printf("%s",PostOrder(s,t);
}

搜索更多相关主题的帖子: 二叉树 
2011-06-06 14:28
hjcmj
Rank: 2
来 自:西安
等 级:论坛游民
帖 子:9
专家分:10
注 册:2011-5-21
收藏
得分:10 
同求解。。。等高手
2011-06-06 23:19
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:10 
程序代码:
#include <stdio.h>
#include <string.h>

char pr_str[1000]={0};
char in_str[1000]={0};
char la_str[1000]={0};
unsigned int index=0;

/*

 *获取终端输入

 */
unsigned short get_inputs()
{
    printf("输入先序:");
    gets(pr_str);
    printf("输入中序:");
    gets(in_str);

    return (strlen(pr_str)==strlen(in_str));
}
/*

 *在所输入的中序序列当中进行检索

 *返回和pr_str[index]相等的下标值

 */
unsigned int get_index(unsigned int index)
{
    unsigned int i;
    unsigned int length = strlen(in_str);

    for (i=0; i<length; ++i)
    {
        if (pr_str[index]==in_str[i])
        {
            break;
        }
    }

    return i;
}

/*

 *左移位操作 移位的开始下标 和 所需要移动的元素个数

 */
void moving(unsigned int start, unsigned int length)
{
    unsigned int i;

    for (i=0; i<length; ++i)
    {
        pr_str[start+i] = pr_str[start+i+1];
    }
}

/*

 *begin为数组的开始下标

 *length为数组的长度

 */
void PostOrder(unsigned int begin, unsigned int length)
{
    unsigned int i;

    if (1 == length)
    {
        la_str[--index] = pr_str[begin];
    }
    else
    {
        la_str[--index] = pr_str[begin];
        i = get_index(begin);
        if (length-(i+1-begin))
        {
            PostOrder(i+1, length-(i+1-begin));
        }
        if (i-begin)
        {
            moving(begin, i-begin);
            PostOrder(begin, i-begin);
        }
    }
}

void function()
{
    if (!get_inputs())
    {
        return;
    }
    index = strlen(pr_str);
    PostOrder(0, index);
    puts(la_str);
    printf("\n\n");
}

int main(void)
{
    function();

    return 0;
}

2011-06-07 09:58
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
自己测试下 有问题请贴上来
2011-06-07 10:00
快速回复:新手求帮助!已知二叉树的前序和中序结果,求后序。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024949 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved