摘要: 链式哈希表的接口定义与实现分析(完整代码) 阅读全文
posted @ 2017-12-08 08:45 DreamGo 阅读(2271) 评论(0) 推荐(0) 编辑
摘要: 链式哈希表从根本上说是由一组链表构成。每个链表都可以看做是一个“桶”,我们将所有的元素通过散列的方式放到具体的不同的桶中。 阅读全文
posted @ 2017-12-07 06:30 DreamGo 阅读(14596) 评论(0) 推荐(2) 编辑
摘要: 设想从一大群选手中挑选人员组建一支队伍,每名选手都拥有特定的技能组合。目标是组建出一只最小的队伍,使得队伍整体拥有一组特定的技能组合。也就是说,对于队伍整体所需要的技能,队伍中至少有一名选手必须拥有这项技能。假定S为队伍所必须拥有的技能集合,P为所有待选选手的技能集合。从P中挑选出一些技能组合以构成C,C必须覆盖S中所要求的所有技能。重要一点,我们选择的选手数量必须尽可能少。 阅读全文
posted @ 2017-12-03 08:34 DreamGo 阅读(6903) 评论(2) 推荐(0) 编辑
摘要: 链表是实现集合的一种理想的方式。将List以typedef的方式重命名为Set。这样做能保留链表简洁的特性,还能使集合具有了一些多态的特性。 阅读全文
posted @ 2017-12-01 09:00 DreamGo 阅读(1419) 评论(0) 推荐(1) 编辑
摘要: 集合的属性和操作接口包括:集合的初始化、集合的销毁、集合元素的插入、移除,两个集合的并集、子集、差集操作,两个集合的相等判断等。 set_init void set_init(Set *set,int(*match)(vonst void *key1,const void *key2),void ( 阅读全文
posted @ 2017-11-28 06:33 DreamGo 阅读(1031) 评论(0) 推荐(0) 编辑
摘要: 集合是不同对象(称为成员)的无序聚集。 集合的两个重要特点:一、成员是无序的;二,每个成员都只在集合中出现一次。 集合是离散数学中的重要部分,离散数学与计算机科学之间有着很深的渊源。 在计算机科学中,我们使用集合来归类数据,尤其是当我们计划以后将其与其他数据相关联时。 C语言并没有原生支持集合,而是 阅读全文
posted @ 2017-11-26 09:17 DreamGo 阅读(4297) 评论(0) 推荐(0) 编辑
摘要: 在事件驱动的应用中利用队列来处理事件是一种常见的方法。 阅读全文
posted @ 2017-11-23 08:34 DreamGo 阅读(1307) 评论(0) 推荐(0) 编辑
摘要: 结构Queue是队列的数据结构。同栈一样,也用typedef List Queue 来定义。 阅读全文
posted @ 2017-11-22 08:36 DreamGo 阅读(1033) 评论(0) 推荐(0) 编辑
摘要: 队列的一个显著特征是它按照先进先出(FIFO)的方式存储和检索元素。这意味着先存入队列的元素将首先被删除 。我们可以形象的把队列看作是在车站排队买票的一队人。当新人一个一个排到队尾时,队伍也在不停变化。当队伍最前面一个人买完票后将首先离开,接着是下一个,再下一个...在计算机中,将一个元素加入队尾, 阅读全文
posted @ 2017-11-21 06:28 DreamGo 阅读(871) 评论(0) 推荐(0) 编辑
摘要: 双向链表的实现与分析 双向链表的组成 :1、数据成员;2、指向下一个元素的next指针;3、指向前一个元素的prev指针。 数据结构DListElmt:代表双向链表中的单个元素(节点)。 数据结构DList:代表双向链表数据结构,该结构的成员同前面介绍的单链表相似。 示例1:双向链表抽象数据类型的头 阅读全文
posted @ 2017-11-19 21:27 DreamGo 阅读(2065) 评论(0) 推荐(0) 编辑