社区
数据结构与算法
帖子详情
根据已知序列生成二叉树的问题
windfast_2000
2002-06-12 10:57:42
已知两个序列
后序:如 abcd-*+ef/-
中序:如 a+b*c-d-e/f
问题:如何根据这两个序列判断各元素在二叉树中的位置,从而生成这个二叉树.
知道的师兄帮忙回答一下,必当重谢!
...全文
101
6
打赏
收藏
根据已知序列生成二叉树的问题
已知两个序列 后序:如 abcd-*+ef/- 中序:如 a+b*c-d-e/f 问题:如何根据这两个序列判断各元素在二叉树中的位置,从而生成这个二叉树. 知道的师兄帮忙回答一下,必当重谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
windfast_2000
2002-06-14
打赏
举报
回复
不是标准的无所谓,我想知道些有新意的东西。
leopro
2002-06-14
打赏
举报
回复
建议以后提问前先搜索相关的主题
有些以前就解决了的问题,还是不要提了
这样的话,既可以节约自己的积分,也不会耽误别人的时间
以前有篇帖子,源码都有了
http://www.csdn.net/expert/topic/752/752530.xml?temp=.2101404
已知前序和中序,你改一改就行了
下面是 hannibalhontani(红冰)提供的程序(算法说明我已在上述帖子中说过了)
template <class Entry>
Binary_node<Entry>* Binary_tree<Entry>::recursive_pre_mid_creat (char* pre,char* mid,
int pre_i,int mid_i,
int length)
{
int i=0;
Binary_node<Entry>* sub_root;
if (length<=0)
return NULL;
while (i<length&&pre[pre_i]!=mid[mid_i+i])
i++;
sub_root=new Binary_node<Entry>;
sub_root->data=pre[pre_i];
sub_root->left=recursive_pre_mid_creat (pre,mid,pre_i+1,mid_i,i);
sub_root->right=recursive_pre_mid_creat (pre,mid,pre_i+i+1,mid_i+i+1,length-i-1);
return sub_root;
}
template <class Entry>
void Binary_tree<Entry>::pre_mid_creat (char* pre,char* mid,
int pre_i,int mid_i,
int length)
{
root=recursive_pre_mid_creat (pre,mid,pre_i,mid_i,length);
}
LeeMaRS
2002-06-13
打赏
举报
回复
此方法即标准方法.
windfast_2000
2002-06-13
打赏
举报
回复
To: ynli2002(阿男)
果然很巧妙!
我试一试,没问题就给你加分。
其他师兄还有别的方法么?
ynli2002
2002-06-13
打赏
举报
回复
后序:如 abcd-*+ef/-
中序:如 a+b*c-d-e/f
具体步骤如下
1。后序中最后一个元素为“-“,把它设为根节点
2。在中序中找出该元素,以该元素为界线分两部分,即a+b*c-d与e/f
3。各部分执行如下操作
3.1 在后序中找出a+b*c-d对应的最后一个元素,把它设为左子树根节点,即“+“
3.2 在后序中找出e/f对应的最后一个元素,把它设为右子树根节点,即“/”
4。返回操作3,当没有元素时退出来
leopro
2002-06-13
打赏
举报
回复
搜索以前的帖子吧,流程和程序都给出来了
已知
二叉树
前序和中序,求后序
*
已知
二叉树
前序和中序,求后序 * @param pre * @param mid * @param last * @param i */ public static int i =0;//i:表示要插入后序
序列
的位置对于
生成
的后序
序列
,应该从最后位置开始写, // 所以...
东大22春《数据结构Ⅱ》在线平时作业1-00001
已知
二叉树
的先序
序列
为ABDECF,中序
序列
为DBEAFC,则后序
序列
为9.若以1234作为双端队列的输入
序列
,则既不能由输入受限的双端队列得到,也不能由输出受限的双端队列得到的输出
序列
是10.
已知
循环队列的存储空间为数...
数据结构(C++)有关练习题
2、实现1所要求的代码后,运行设计好的代码,将以下的几组整数
序列
建成搜索
二叉树
,并记录下它们的前序遍历
序列
和后序遍历
序列
: a. 1、3、5、7、9; b. 1、13、35、13、27; c. 50、25、78、13、44、...
根据遍历
序列
创建
二叉树
我们知道,
二叉树
的遍历
序列
有三种:先序遍历(VLR)、中序遍历(LVR)、后序遍历(LRV)。(不谈别的遍历,如层次遍历。默认访问顺序是先左后右) 这三种遍历
序列
在严蔚敏编撰的《数据结构(C语言版)》 一书中是这样定义...
根据遍历
序列
确定
二叉树
先序、中序
序列
,构造相应
二叉树
先序:A B C D E F G H I J 中序:C D B F E A I H G J 解: 1. 先序:A B C D E F G H I J (可知A作为根) 中序:C D B F E A I H G J (可知C D B F E为左子树 I H G F为右子树) 2....
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章