• 全部
  • 问答

已知先、中序序列,构造二叉树问题

xunuo20041101 2008-04-21 05:07:54
看到一道面试题,觉得好玩,写了个算法
一起交流一下,希望能抛砖引玉,并望高手指正
#include <stdio.h>
#include <string.h>

struct Node
{
Node* left;
Node* right;
char value;
};

void Rebuild(char* preOrder/*先序*/, char* inOrder/*中序*/,
int length/*子树长度*/, Node** root/*root为输出*/)
{
if (length == 0)
{
*root = NULL;
return;
}

(*root) = new Node;
(*root)->value = preOrder[0];

char tmp = preOrder[0];
for (int i=0; i<length; i++)
{
if (inOrder[i] == tmp)
break;
}

Rebuild(preOrder+1, inOrder, i, &((*root)->left));
Rebuild(preOrder+i+1, inOrder+i+1, length-i-1, &((*root)->right));
}

void PostOrder(Node* root)
{
if (root != NULL)
{
PostOrder(root->left);
PostOrder(root->right);
printf("%c", root->value);
}
}

int main()
{
char* preOrder = "abdecfg";
char* inOrder = "dbeafcg";
Node* root;
Rebuild(preOrder, inOrder, strlen(preOrder), &root);
PostOrder(root);
printf("\n");
return 0;
}
...全文
153 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wzw200 2008-07-03
是的 说什么呢 时间好少 有问题 你就说出来 你一下 代码 连个 什么都没有
那有时间 看 这代码呢?
回复
没遇到过这种情况.
回复
UltraBejing 2008-05-01
接分先!
回复
meiZiNick 2008-04-30
不明LZ在说什么
回复
zhangqdan 2008-04-22
接分,不过我刚学数据结构
回复
夜雨_倚琴 2008-04-22
有时间看看,先接分,呵呵
回复
ksharp2008 2008-04-21
又见大王,大王是学生还是工作了啊
回复
http://hi.baidu.com/starseas/blog/item/c9cec4032aa0ab733912bbf4.html
http://hi.baidu.com/xmuboy/blog/item/22a2a9caee23e684c81768ce.html
回复
相关推荐
发帖
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-04-21 05:07
社区公告
暂无公告