数据结构chapter树和二叉树等价问题.pptx
《数据结构chapter树和二叉树等价问题.pptx》由会员分享,可在线阅读,更多相关《数据结构chapter树和二叉树等价问题.pptx(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 十二 次 课阅读:朱战立,第200-204页习题:作业11第1页/共34页数据结构课程内容二叉树二叉树数据结构的应用数据结构的应用第2页/共34页8.7 8.7 等价问题(并查集)等价问题(并查集)基本概念基本概念l1、等价关系等价关系(equivalence relation):假定有一具有:假定有一具有n个元素的非空集合个元素的非空集合S=1,2,n,另有一个具有,另有一个具有r个关系的集合个关系的集合R=(i1,j1),(i2,j2),(ir,jr),若,若R满足:满足:l对所有的对所有的iS,有,有(i,i)R时,即关系是自反的时,即关系是自反的l对所有的对所有的i,jS,当且仅当
2、,当且仅当(i,j)R时时(j,i)R,即,即关系是对称的关系是对称的l对所有的对所有的i,j S,若,若(i,j)R且且(j,k)R,则有,则有(i,j)R,即关系是传递的,即关系是传递的则称关系则称关系R是定义在是定义在S上的一个上的一个等价关系等价关系,其中,其中,i1等等价于价于j1,i2等价于等价于j2,ir等价于等价于jr。第3页/共34页l2、等价类(equivalence classes):设R是定义在非空集合S上的一个的等价关系,称 是x的等价类。R可产生集合S的唯一划分,即可以按R将S划分为若干不相交的子集S1,S2,这些子集Si称为S的R等价类。简言之,等价类是集合中相互
3、等价的元素的最大子集合。第4页/共34页在一些应用问题中,给出各个元素之间的联系,要求将这些元素分成几个集合,每个集合中的元素直接或间接有联系。在这类问题中主要涉及的是对集合的合并和查找,因此将这种集合称为并查集。第5页/共34页例如:亲戚 或许你并不知道,你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。如果能得到完整的家谱,判断两个人是否是亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使得家谱十分庞大,那么检验亲戚关系实非人力所能及。在这种情况下,最好的帮手是计算机。为了将问题简化,你将得到一些亲戚关系的信息,如同Xuebin和Grant是亲戚,G
4、rant和Tension是亲戚等,从这些信息中,你可以推出Xuebin和Tension是亲戚。请写一个程序,对于我们的关于亲戚关系的提问,以最快的速度给出答案。第6页/共34页设初始有一集合S=0,1,2,3,4,5,6,7,8,9,10,11,依次读若干事先定义的等价对0 4,3 1,6 10,8 9,7 4,6 8,3 5,2 11,11 0.每次读入一个等价对后,把等价集合union起来,则每读入一个等价对后集合的状态是:初始0,1,2,3,4,5,6,7,8,9,10,110 4 0,4,1,2,3,5,6,7,8,9,10,113 1 0,4,1,3,2,5,6,7,8,9,10,1
5、16 10 0,4,1,3,2,5,6,10,7,8,9,11 8 9 0,4,1,3,2,5,6,10,7,8,9,117 4 0,4,7,1,3,2,5,6,10,8,9,116 8 0,4,7,1,3,2,5,6,8,9,10,113 5 0,4,7,1,3,5,2,6,8,9,10,112 11 0,4,7,1,3,5,2,11,6,8,9,1011 0 0,2,4,7,11,1,3,5,6,8,9,10第7页/共34页ADT UnionFindSet数据元素:seti=aj,i=0,1,n-1,j=0,1,ni-1(n0,ni0)。其中ai0,1,2,n结构:逻辑操作:设S为Unio
6、nFindSet型Initiate(S,n):建立n个新集合,每个集合有唯一元素。要求各集合不相交的Find(S,x):返回x的等价类名Union(S,x,y):如果Find(S,x)!=find(S,y),则把分别含有x和y的两个等价类合并成到一个等价类。每一次union操作使得集合的个数减少1第8页/共34页算法性能参数nFind操作的次数mUnion操作的次数(至多n-1)第9页/共34页并查集实现方法1:数组表示法建立一大小为n的数组,其中每个元素是等价类名0 1 2 3 4 5 6 7 8 9 10 11下标下标0 1 2 3 4 5 6 7 8 9 10 11等价类名等价类名,un
7、ion(x,y):把所有的把所有的Find(x)改为改为Find(y)4 1 2 3 4 5 6 7 8 9 10 11 Union(0,4):把所有的把所有的0改为改为44 1 2 1 4 5 6 7 8 9 10 11 Union(3,1):把所有的把所有的3改为改为14 1 2 1 4 5 10 7 8 9 10 11 Union(6,10):把所有的把所有的6改为改为104 1 2 1 4 5 10 7 9 9 10 11 Union(8,9):把所有的把所有的8改为改为94 1 2 1 4 5 10 4 9 9 10 11 Union(7,4):把所有的把所有的7改为改为44 1 2
8、 1 4 5 9 4 9 9 9 11 Union(6,8):把所有的把所有的10改为改为94 5 2 5 4 5 9 4 9 9 9 11 Union(3,5):把所有的把所有的1改为改为54 5 11 5 4 5 9 4 9 9 9 11 Union(2,11):把所有的把所有的2改为改为114 5 4 5 4 5 9 4 9 9 9 4 Union(11,0):把所有的把所有的11改为改为4第10页/共34页数组法算法分析操作操作 时间效率时间效率 操作执行次数操作执行次数FindO(1)mUnionO(n)n-1将所有元素合并到一个集合:将所有元素合并到一个集合:O(m+n2)第11页
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 chapter 二叉 等价 问题
限制150内