嗯。。跟着陈越姥姥上数据结构,期末考试遇到一道从后序遍历和中序遍历推前序遍历的题,然后硬是不会做,今天突然有了思路,遂记下来:原题是这样的:一颗二叉树的后序遍历序列是FDEBGCA,中序遍历序列是FDBEACG,那么前序遍历序列是?思路如下:根据后序遍历的性质,最后访问的元素一定是根节点,可知该二叉...
分类:
其他好文 时间:
2015-07-09 00:47:24
阅读次数:
248
本份代码需要两个栈。一个是符号栈,一个是数字栈。输入中序表达式如9+(3-1)*3+10/2##define _CRT_SECURE_NO_WARNINGS#include#include#define max 100char ex[max]; /*存储后序表达式*//*函数功能:将中序表达式转化为...
分类:
其他好文 时间:
2015-07-07 12:43:02
阅读次数:
207
思想:采用非递归后序遍历二叉树b.当找到节点值为x的节点时将栈中所有节点值存放在anorx数组中(如图所示的二叉树,F节点的anorx为“ACF”),当找到节点值为y的节点时将栈中所有节点值存放在anory数组中(对于如图所示的二叉树,E节点的anory为“ACE”),当两个节点均已找到后,通过比较找到他们最近的公共祖先(对于如图所示的二叉树,F和E节点的最近公共祖先为C),对应的算法如下:...
分类:
编程语言 时间:
2015-07-07 01:00:18
阅读次数:
274
【目标】建立如下所示的一棵二叉树,并且输出其对应的前序遍历、中序遍历、后序遍历。...
分类:
编程语言 时间:
2015-07-06 23:32:08
阅读次数:
213
题意:给出前序历遍和中序遍历的顺序,来推导后序遍历的顺序。
做法:把握两个要点,前序是 先根历遍的,所以前序的第一个是根。然后这个根把中序分为两半,左边是左子树,右边是右子树。然后递归下就ok了。...
分类:
其他好文 时间:
2015-07-06 23:31:25
阅读次数:
225
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。代码:package com.huawei;im...
分类:
其他好文 时间:
2015-07-06 23:08:56
阅读次数:
315
下面使用三种遍历方法输出逆路径,假设二叉树采用二叉链存储结构存储。
方法1:采用基于层次遍历的方法,设计的队列为非环形顺序队列,将所有已扫描的节点指针进队,并在队列中保存双亲节点的位置。当找到一个叶子节点时,在队列中通过双亲节点的位置输出该叶子节点到根节点的逆路径。对应的算法如下:
void AllPath(BTNode * b)
{
struct snode
{
BTNode *no...
分类:
编程语言 时间:
2015-07-06 18:10:15
阅读次数:
493
【目标】建立如下所示的一棵二叉树,并且输出其对应的前序遍历、中序遍历、后序遍历。...
分类:
编程语言 时间:
2015-07-06 17:59:55
阅读次数:
261
本文共列出了11个常见的二叉树遍历算法。二叉树的遍历主要有深度优先遍历和广度优先遍历。深度优先遍历包含前序遍历、中序遍历和后序遍历。值得一提的是, 其中的 Morris 算法 可以线性时间不需要额外空间(用户栈或系统栈空间)实现二叉树的前序遍历、中序遍历和后序遍历。关于Morris算法, 可参考ht...
分类:
编程语言 时间:
2015-07-06 11:41:08
阅读次数:
252