二叉树的对称序列是什么

论坛 期权论坛 期权     
匿名   2018-4-26 13:42   7267   3
分享到 :
0 人收藏

3 个回复

倒序浏览
2#
萌萌哒22241  4级常客 | 2018-4-30 02:31:24 发帖IP地址来自
就是中序,先访问左子树,后访问父节点,最后访问右子树。
所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问 题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。
遍历方案
二叉树遍历

二叉树遍历
从二叉树的 递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点上,可以按某种次序执行三个操作:
⑴访问结点本身(N),

⑵遍历该结点的左子树(L),

⑶遍历该结点的右子树(R)。

以上三种操作有六种执行次序:

NLR、LNR、LRN、NRL、RNL、RLN。

注意:
前三种次序与后三种次序对称,故只讨论先左后右的前三种次序。

遍历命名

根据访问结点操作发生位置命名:

① NLR: 前序遍历(Preorder Traversal 亦称(先序遍历))

——访问根结点的操作发生在遍历其左右子树之前。

② LNR: 中序遍历(Inorder Traversal)

——访问根结点的操作发生在遍历其左右子树之中(间)。

③ LRN: 后序遍历(Postorder Traversal)

——访问根结点的操作发生在遍历其左右子树之后。

注意:

由于被访问的结点必是某子树的根,所以N(Node)、L(Left subtree)和R(Right subtree)又可解释为根、根的左子树和根的右子树。NLR、LNR和LRN分别又称为 先根遍历、中根遍历和后根遍历。

遍历算法

1.先(根)序遍历的 递归算法定义:

若二叉树非空,则依次执行如下操作:

二叉树遍历

⑴ 访问根结点;
⑵ 遍历左子树;

⑶ 遍历右子树。

2.中(根)序遍历的递归算法定义:

若二叉树非空,则依次执行如下操作:

⑴遍历左子树;

⑵访问根结点;

⑶遍历右子树。

3.后(根)序遍历得递归算法定义:

若二叉树非空,则依次执行如下操作:

⑴遍历左子树;

⑵遍历右子树;

⑶访问根结点。

中序算法实现

用二叉链表做为存储结构,中序遍历算法可描述为:

void InOrder(BinTree T)

{ //算法里①~⑥是为了说明执行过程加入的标号

① if(T) { // 如果二叉树非空

② InOrder(T->lchild);

③ printf("%c",T->data); // 访问结点

④ InOrder(T->rchild);

⑤ }

⑥ } // InOrder

3#
chiconysun  4级常客 | 2018-4-30 02:31:25 发帖IP地址来自
这个对称序列应该就是中序遍历的序列了
4#
热心网友  15级至尊 | 2018-4-30 02:31:26 发帖IP地址来自
就是中序,先访问左子树,后访问父节点,最后访问右子树。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:58388
帖子:6688
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP