- 13
- 0
- 约1.68万字
- 约 63页
- 2018-06-09 发布于山西
- 举报
数据结构教程第章集合与字典
集合及其表示 并查集与等价类 字典 跳表 散列 6.1.1 集合及其表示 集合是成员(对象或元素)的一个群集。集合中的成员可以是原子(单元素),也可以是集合。 集合的成员必须互不相同。 在算法与数据结构中所遇到的集合,其单元素通常是整数、字符、字符串或指针,且同一集合中所有成员具有相同的数据类型。 colour = { red, orange, yellow, green, black, blue, purple, white } name = {An, Cao, Liu, Ma, Peng, Wang, zhang } 集合中的成员一般是无序的,但在表示它时,常设定集合中的单元素具有线性有序关系,此关系可记作“”,表示“优先于” ;整数、字符和字符串都有一个自然线性顺序。指针也可依据其在序列中安排的位置给予一个线性顺序。 某些集合保存的是实际数值,某些集合保存的是表示元素是否在集合中的指示信息。 要求每个元素在集合中只出现一次,但多种集合允许元素重复出现。 集合的有序链表类的定义 6.2.1 并查集 (Union-Find Sets) 并查集支持以下三种操作: Union (Root1, Root2) //并操作 Find (x) //搜索操作 UFSets (s) //构造函数 对于并查集来说,每个集合用一棵树表示。 为此,采用树的双亲表示作为集合存储表示。集合元素的编号从0到 n-1。其中 n 是最大元素个数。 在双亲表示中,第 i 个数组元素代表包含集合元素 i 的树结点。根结点的双亲为-1,表示集合中的元素个数。 在同一棵树上所有结点所代表的集合元素在同一个子集合中。 初始时, 用构造函数 UFSets(s) 构造一个森林, 每棵树只有一个结点, 表示集合中各元素自成一个子集合。 用 Find(i) 寻找集合元素 i 的根。如果有两个集合元素 i 和 j, Find(i) == Find(j), 表明这两个元素在同一个集合中。 如果两个集合元素 i 和 j 不在同一个集合中,可用 Union(i, j) 将它们合并到一个集合中。 并查集类的定义 成员函数的实现 6.3 字典(Dictionary) 以集合为基础,支持Member、Insert、Remove三种运算的抽象数据类型叫做字典。 字典的概念: 字典是一些元素的集合,每个元素有一个称作关键码的域。 在讨论字典抽象数据类型时,把字典定义为名字-属性对的集合。 字典的操作: 确定一个指定的名字是否在字典中; 搜索出该名字的属性; 修改该名字的的属性; 插入一个新的名字及其属性; 删除一个名字及其属性。 考虑到搜索效率, 可以用顺序表方式、二叉搜索树或多路搜索树方式组织字典。本章介绍3种字典的组织方式:线性表、跳表和散列表。 6.4 跳表(Skip List) 在链表的中部结点增加一个指针,以减少搜索时的比较次数。 6.5 散列 (Hashing) 散列方法 散列方法在元素存储位置与其关键码之间建立一个确定的对应函数关系Hash( ),使每个关键码与结构中一个唯一存储位置相对应: Address = Hash (key ) 在搜索时, 先对元素的关键码进行函数计算,把函数值当做元素的存储位置, 在结构中按此位置取元素比较。若关键码相等, 则搜索成功。在存放元素时, 依相同函数计算存储位置, 并按此位置存放。这种方法就是散列方法。 在散列方法中使用的转换函数叫做散列函数。按此方法构造出来的表或结构就叫做散列表。 使用散列方法进行搜索不必进行多次关键码的比较, 搜索速度比较快, 可以直接到达或逼近具有此关键码的元素的实际存放地址。 散列函数是一个压缩映象函数。关键码集合比散列表地址集合大得多。因此有可能经过散列函数的计算,把不同的关键码映射到同一个散列地址上,这就产生了冲突。 示例:有一组元素,其关键码分别是 12361, 07251, 03309, 30976 采用的散列函数是 hash(x) = x % 73 其中,“%”是除法取余操作。 则有:hash(12361) = hash(07251) = hash(03309) = hash(30976) = 24。就是说, 对不同的关键码, 通过散列函数的计算, 得到了同一散列地址。 我们称这些产生冲突的散列地址相同的不同关键码为同义词。 由于关键码集合比地址集合大得多, 冲突很难避免。所以对于散列方法, 需要讨论以下两个问题: 对于给定的一个关键码集合, 选择一个计算简单且地址分布比较均匀的散列函数,
您可能关注的文档
最近下载
- 2025-2026学年小学劳动人美版2024五年级下册-人美版(2024)教学设计合集.docx
- 2025年青岛酒店管理职业技术学院单招笔试英语试题库含答案解析.docx VIP
- 海藻学-3.pdf VIP
- 东风天龙电气系统维修.ppt VIP
- 2026人教版小学语文四年级上册期末考试精选3套试卷(含答案解析).pdf
- 《出纳实务》高职财经专业全套教学课件.pptx
- 毕业论文的答辩与评价.ppt VIP
- 药品质量研究的内容与药典概况详解.ppt VIP
- 西门子通风控制器acx36介绍.pdf
- 2024年青岛酒店管理职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析.docx VIP
原创力文档

文档评论(0)