【离散数学】树(三)树的同构

正文之前

在之前的【离散数学】图论中谈到过图的同构,今天我们来谈谈树的同构:

同构树
同构有根树
同构二叉树

正文

同构树

1. 简介

T1和T2为同构树,当且仅当存在一个从T1的结点到T2的结点的一对一的映上函数 f (one - to - one and onto function f )

简而言之,如果T1和T2为同构树,在T1中结点 v 和 w 相邻,则在T2中的结点 f (v) 和 f(w) 也相邻

上图中:

  • a - A
  • b - B
  • c - C
  • d - D
  • e - E
2. 判断

如果T1中某些特性没有表明在T2中,就能够表明两棵树不同构

T1中有度数为2,3的结点,而T2中没有,所以T1和T2不同构

同构有根树

1. 简介

同构有根树的条件是基于同构树之上的:

T1的结点到T2的结点的一对一的映上函数 f (one - to - one and onto function f )

还必须保持根结点的一致性

也就是说,如果T1的根结点为 v ,则T2的根结点为 f(v)

若 v1 为T1的根结点, v2 为T2的根结点,所以T1和T2同构需满足

  1. T1中结点 v 和 w 相邻,则T2中的结点 f (v) 和 f(w) 也相邻
  2. f(v1) = v2

上图中:(注意下标)

  • v1 - w1
  • v2 - w3
  • v3 - w4
  • v4 - w2
  • v5 - w6
  • v6 - w7
  • v7 - w5
2. 判断

同构有根树的判断和同构树的判断相同,只需要找一些不同的特性

上图中,T1的根结点的度为4,而T2的根结点的度为3,所以两树不同构

同构二叉树

1. 简介

同构二叉树的条件是基于同构有根树之上的:

不仅需要保持结点的相邻关系和根的一致性,还需要保持左右子节点的一致性

若T1是根结点为 v1 的二叉树,T2是根结点为 v2 的二叉树,所以T1和T2同构需满足:

  1. T1中结点 v 和 w 相邻,则T2中的结点 f (v) 和 f(w) 也相邻
  2. f(v1) = v2
  3. vi 是T1中结点 v 的左子节点,则 f(vi) 是T1中结点 f(v) 的左子节点
  4. vj 是T1中结点 v 的右子节点,则 f(vj) 是T1中结点 f(v) 的右子节点

上图中,T1和T2同构,T1和T3不同构:

  • v1 - w1
  • v2 - w2
  • v3 - w3
  • v4 - w4
  • v5 - w5
  • v6 - w6
2. 判断

同构二叉树的判断如同上述,只需要找一些不同的特性

以上图来说,T1中,v3没有右子节点,而在T3中,a3却有右子节点,所以两树不同构

划重点

对于两棵树是否同构,需要分情况来判断:

对于上图中两棵树,作为二叉树,两棵树不同构,但是,作为有根树自由树,这两棵树是同构的

关于树的同构就介绍到此了,谢谢!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一章 绪论 什么是数据结构? 数据结构的定义:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 第二章...
    SeanCheney阅读 11,089评论 0 19
  • B树的定义 一棵m阶的B树满足下列条件: 树中每个结点至多有m个孩子。 除根结点和叶子结点外,其它每个结点至少有m...
    文档随手记阅读 14,583评论 0 25
  • 树形动态规划,顾名思义就是树+DP,先分别回顾一下基本内容吧:动态规划:问题可以分解成若干相互联系的阶段,在每一个...
    Mr_chong阅读 5,370评论 0 2
  • 原文链接 B树 1.前言: 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(...
    非典型程序员阅读 4,897评论 0 3
  • 1.树(Tree): 树是 n(n>=0) 个结点的有限集。当 n=0 时称为空树。在任意一颗非空树中:有且仅有一...
    ql2012jz阅读 4,746评论 0 3