社区
数据结构与算法
帖子详情
根据已知序列生成二叉树的问题
windfast_2000
2002-06-12 10:57:42
已知两个序列
后序:如 abcd-*+ef/-
中序:如 a+b*c-d-e/f
问题:如何根据这两个序列判断各元素在二叉树中的位置,从而生成这个二叉树.
知道的师兄帮忙回答一下,必当重谢!
...全文
103
6
打赏
收藏
根据已知序列生成二叉树的问题
已知两个序列 后序:如 abcd-*+ef/- 中序:如 a+b*c-d-e/f 问题:如何根据这两个序列判断各元素在二叉树中的位置,从而生成这个二叉树. 知道的师兄帮忙回答一下,必当重谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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.
已知
循环队列的存储空间为数...
遍历
序列
生成
二叉树
然而,仅依靠一棵
二叉树
的某一种遍历
序列
,是不能唯一确定这棵
二叉树
的具体形态的。这是因为不同形态的
二叉树
可能会产生相同的某一种遍历
序列
。例如,一棵只有左子树的
二叉树
和一棵只有右子树的
二叉树
,它们的前序...
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章