[数据结构与算法分析(Mark Allen Weiss)]不相交集 @ Python

最简单的不相交集的实现,来自MAW的《数据结构与算法分析》。

代码:

class DisjSet:
    def __init__(self, NumSets):
        self.S = [0 for i in range(NumSets+1)]

    def SetUnion(self, S, Root1, Root2):
        S[Root2] = Root1

    def Find(self, X, S):
        if S[X] <= 0:
            return X
        else:
            return self.Find(S[X], S)

DisjSet = DisjSet(8)
DisjSet.SetUnion(DisjSet.S, 5, 6)
DisjSet.SetUnion(DisjSet.S, 7, 8)
DisjSet.SetUnion(DisjSet.S, 5, 7)
print DisjSet.Find(8, DisjSet.S)
print DisjSet.Find(7, DisjSet.S)
print DisjSet.Find(4, DisjSet.S)
print DisjSet.S

[数据结构与算法分析(Mark Allen Weiss)]不相交集 @ Python

时间: 2024-10-06 05:04:58

[数据结构与算法分析(Mark Allen Weiss)]不相交集 @ Python的相关文章

[数据结构与算法分析(Mark Allen Weiss)]二叉树的插入与删除 @ Python

二叉树的插入与删除,来自Mark Allen Weiss的<数据结构与算法分析>. # Definition for a binary tree node class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None class BinarySearchTree: # @param root, a tree node # @return a list of integers def

数据结构与算法分析-c语言描述版 mark allen weiss

指出依序访问图4-61中的伸展树中关键字3,9,1,5后的结果. 图4-61 1.原理 这里主要涉及到两种旋转方式: 1)之子型旋转 2)一字型旋转 这两种方式实际有一点差别: 之子型旋转是两次单旋转的组合,而且都可以看成是将目标节点父节点的选转(后面实例进行说明) 而一字型旋转时目标节点的祖父节点的的旋转后再加上父节点的旋转(后面实例进行说明). 因此书中所指的标准AVL双旋转可以分解为两步进行. 2.习题旋转步骤: 1)3节点的访问 第一步:节点3-2-4 之字形 :父节点的旋转,因此 2-

数据结构与算法分析(四)——不相交集

基本介绍 一个集合S,集合中一个元素a.a的等价类是S的一个子集,该子集包含所有与a有关系的元素. 等价类形成是对S的一个划分且S中的每一个成员恰好出现在一个等价类中.这样,判断a与b是否有关系, 只需要判断a与b是否在一个等价类中即可. 对于集合S划分,取任意两个等价类,Si与Sj,如果Si∩Sj = ∅,则称这些集合不相交. 对于不相交集,有两种操作,Union/Find操作.Find操作找包含给定元素的集合(等价类)名字. Union把两个等价类合并成一个新的等价类. 数据结构:采用树来表

《数据结构与算法分析—C语言描述》pdf

下载地址:网盘下载 内容简介 编辑 <数据结构与算法分析:C语言描述(原书第2版)>内容简介:书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能.效率以及对运行时间分析的基础上考查了一些高级数据结构,从历史的角度和近年的进展对数据结构的活跃领域进行了简要的概括.由于<数据结构与算法分析:C语言描述(原书第2版)>选材新颖,方法实用,题例丰富,取舍得当.<数据结构与算法分析:C语言描述(原书第2版)>的目的是培养学生良好的程序设计技巧和熟练的算

数据结构与算法分析 c语言描述 pdf 高清下载

网盘下载:数据结构与算法分析 c语言描述 pdf 高清下载 – 易分享电子书PDF资源网 作者: [美] Mark Allen Weiss 出版社: 机械工业出版社 副标题: C语言描述 原作名: Data Structures and Algorithm Analysis in C:Second Edition 译者: 冯舜玺 出版年: 2004-1-1 页数: 391 定价: 35.00元 装帧: 平装 内容简介 · · · · · · 本书是<Data Structures and Alg

数据结构与算法分析_Java语言描述(第2版)pdf

下载地址:网盘下载 本书是国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估计). 随着计算机速度的不断增加和功能的日益强大,人们对有效编程和算法分析的要求也不断增长.本书将算法分析与最有效率的Java程序的开发有机地结合起来,深入分析每种算法,并细致讲解精心构造程序的方法,内容全面.缜密严格. 第3版的主要更新如下: ? 第4章包含AVL树删除算法的实现. ? 第5章进行了全面修订和扩充,现在包含两种较

数据结构与算法分析 - 1 - 链表ADT

1.描述:不连续存储的表,可以把链表看成一个数组,数组元素是一个个结构体,这些结构体之间通过指针连接 2.优点: 利用不连续的存储空间,提高内存使用效率 避免删除和插入的线性开销 对比数组,大小不固定,可以扩展 3. 缺点:查找效率低 4. 定义一个单向链表 1 struct Node 2 { 3 ElementType value; 4 Node *next; //next指针,指向下一个节点 5 }; 5.检测链表是否为空 对于一个单向链表,链表为空即头节点为空 1 int IsEmpty(

《数据结构与算法分析:C语言描述》读书笔记

我们数据结构的课用了这本英文教材,作者是Mark Allen Weiss.总体来说比<算法导论>简单很多,但内容上交集非常大.其实是因为去掉了大多数证明和数学,对于没有耐心看符号和公式的人,显得更友好,更通俗.其中的代码实现很靠谱,照着敲出来基本正确可运行,这点尤其适合入门者. 不过现在读<算法导论>以后,感到还是应该沉下心来和公式.定理神马的打打交道.Mark Allen Weiss这本书确实适合大一和大二的同学看,大三就不适合了. 深深地明白了为什么大神说“算法导论其实很浅显”

数据结构与算法分析-索引

作者:xiabodan 出处:http://blog.csdn.net/xiabodan 算法和数据结构是计算机科学的核心内容.作为程序猿,编程是我们的实战项目.然而,写出程序还不够.一个程序在应对一些大型而复杂的情况时.会耗费大量的时间.我们能够非常easy写出一个从文件里找到一个词的程序.比方逐词扫描.看是否相符.但假设我们的文件有几十TB,并且要从文件里找到上百个词,逐个扫描的办法就差点儿不可行.我们须要优化程序,以便我们的程序能够应对复杂问题. 算法研究解决这个问题的方法,而数据结构则是