003数据描述 - 4.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
003数据描述 - 4

山东大学计算机科学与技术学院 数据结构 第3章 数据描述 * 在线等价类 初始有n 个元素,每个元素都属于一个独立的等价类。 需要执行以下的操作: (1) Combine(a,b)---- 把包含a和b的等价类合并成一个等价类。 (2) Find(e)---- 确定哪个类包含元素e 。 combine(a,b) 等价于: i=Find(a); j=Find(b); If (i!=j) Union(i,j); 向R中添加新关系 (a,b) : i=Find(a); j=Find(b); If (i!=j) Union(i,j); 在线等价类问题,通常又称之为union-find问题. 山东大学计算机科学与技术学院 数据结构 第3章 数据描述 * 在线等价类问题的解决办法 第一种解决方案: 使用一个数组E E[e]:包含元素e 的等价类 第二种解决方案 针对每个等价类设立一个相应的链表 山东大学计算机科学与技术学院 数据结构 第3章 数据描述 * 第一种解决方案 void Initialize(int n) {//初始化n个类,每个类仅有一个元素 E=new int [n+1]; For (int e=1; e=n; e++) E[e]=e; } void Union(int i, int j) {//合并类i和类j For (int k=1; k=n; k++) if (E[k]= =j) E[k]=i; } int Find(int e) {return E[e]; //搜索包含元素i的类 } 1 2 3 4 5 E[] 1 2 3 4 5 n 1 3 3 4 5 E[] 1 2 3 4 5 n 第二种解决方案 针对每个等价类设立一个相应的链表 node[1:n]用于描述n个元素(每个元素都有一个对应的等价类链表) node[e]:EquivNode类私有数据成员(int): E:元素e所在的等价类(用等价类链表中的首节点位置表示) Size:元素e所在等价类中的元素数目(等价类链表中的节点数,仅当e是链表的首节点时,才定义node[e].size ) Link:链表指针(模拟指针), 0表示空指针。 山东大学计算机科学与技术学院 数据结构 第3章 数据描述 * void Initialize(int n) {// 初始化n个类,每个类仅有一个元素 node = new EquivNode [n+1]; for (int e = 1; e = n; e++) { node[e].E = e; node[e].link = 0; node[e].size = 1; } } 山东大学计算机科学与技术学院 数据结构 第3章 数据描述 * 1 2 3 4 5 E[] 1 2 3 4 5 n int Find(int e) { //搜索包含元素i 的类 return node[e].E; } 山东大学计算机科学与技术学院 数据结构 第3章 数据描述 * void Union(int i, int j) { //合并类i 和类j; // 使i 代表较小的类 if (node[i].size node[j].size) swap ( i , j ) ; //改变较小类的E值 int k; for (k = i; node[k].link; k = node[k].link) node[k].E = j; node[k].E = j; // 链尾节点 //在链表j的首节点之后插入链表i; 并修改新链表的大小 node[j].size += node[i].size; node[k].link = node[j].link; node[j].link = i; } 山东大学计算机科学与技术学院 数据结构 第3章 数据描述 * 3.8.4 凸包 山东大学计算机

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档