链表
Function_18
这个作者很懒,什么都没留下…
展开
-
拓扑排序
拓扑排序其实只需要讲解清楚拓扑排序的原理就可以了. 每次将入度为 0 的数入队, 然后将它所指向的数的入度 -1.再重复将入度为 0 的数如队, 直到所有的数都入队结束如图, 因为 1 的入度为 0 , 现将 1 入队, 接下来将入度为 0 的 2 入队, 再是 4 ,再是 3 , 最后 5 入度原创 2017-07-30 14:06:57 · 370 阅读 · 0 评论 -
不相交集ADT
不相交集ADTADT的知识很简单, 类似于游标, 但还有它的专业解释等价关系等价关系是满足下列三个性质的关系R: (自反性)对于所有的a∈S,aRa (对称性)aRb当且仅当bRa (传递性)若aRb且bRc,则aRc.动态等价性问题一个元素a∈S的等价类是S的一个子集,它包含所有a有关系的元素。原创 2017-07-26 16:38:09 · 402 阅读 · 0 评论 -
链表的游标实现 - 一道算法题
链表的游标实现 - 一道算法题输入包含多组数据。每组数据占一行,包含不超过100000个字母、下划线、字符“[”或者“]”。其中字符“[”表示Home键,“]”表示End键。输入结束标志为文件结束符(EOF)。输 入文件不超过5MB。对于每组数据,输出一行,即屏幕上的悲剧文本。//样例输入:This_is_a_[Beiju]_text[[]][][]Happy_Birthday_to_Tsin原创 2017-07-26 13:49:50 · 860 阅读 · 0 评论 -
链表的游标实现
链表的游标实现诸如BASIC和FORTRAN等许多语言都不支持指针。如果需要链表而又不能使用指针,这时我们可以使用游标(cursor)实现法来实现链表。在链表的实现中有两个重要的特点:数据存储在一组结构体中。每一个结构体包含有数据以及指向下一个结构体的指针。一个新的结构体可以通过调用malloc而从系统全局内存(global memory)得到,并可以通过free而被释放。说得明了一些, 就是用数组原创 2017-07-26 13:46:38 · 430 阅读 · 0 评论 -
散列 - 开放定址散列
散列 - 开放定址散列开放定址散列法是另一种不用链表解决冲突的方法 不过, 在开放定址散列标准的删除方法不能使用而大致的算法思路跟其散列-分离链表法类似原创 2017-07-26 12:00:10 · 474 阅读 · 0 评论 -
散列 - 分离链接法
散列 - 分离链接法通过某种特定的函数/算法(称为散列函数/算法)将要检索的项与用来检索的索引(称为散列,或者散列值)关联起来,生成一种便于搜索的数据结构(称为散列表)。也译为散列。 我们需要将输入的字符串进行转换, 将其转换成数字, 在插入保存的数, 当然, 也可能会存在不同字符串对应相同的数字, 这时, 为了保证不冲突, 我们将字符串对应相同的数字用链表表示, 用链表保存我们要存储的东西.原创 2017-07-26 11:16:27 · 938 阅读 · 0 评论 -
栈的数组实现
栈的数组实现,顾名思义, 就是不适用链表指针的形式的栈. 了解链表的基本用法,也就很清楚栈的数组原理.原创 2017-07-19 17:12:03 · 419 阅读 · 0 评论 -
链表的指定位置输出
当输入1时,输出链表中第一元素的数, 同理,输入3, 输出第三个元素原创 2017-07-19 17:00:15 · 1034 阅读 · 0 评论 -
栈ADT
## 栈 ##栈(stack),是一种线性存储结构,它有以下几个特点: (01) 栈中数据是按照”后进先出(LIFO, Last In First Out)”或者先进后出(FILO)方式进出栈的。 (02) 向栈中添加/删除数据时,只能从栈顶进行操作。定义初始链表struct Node;原创 2017-07-19 16:51:47 · 662 阅读 · 0 评论 -
链表的并集
链表的并集当有两个集合A,B求两个集合的并集 如: A = { 1, 2, 3 ,4} B = { 3, 4, 5, 6} A U B = { 1 ,2 ,3 ,4 ,5 ,6 };原创 2017-07-19 16:34:13 · 1710 阅读 · 0 评论 -
链表
链表链表相似于数组的部分功能也不同于数组,在插入元素,删除元素方面强于数组.链表删除,插入更加的容易. 链表由一系列不必在内存中相连的结构组成.每一个结构均含有表元素和指向包含该元素后继元的结构指针. 这是链表的创建,先定义结构体//定义结构体原创 2017-07-19 16:22:44 · 434 阅读 · 0 评论 -
Huffman
Huffman算法霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现概率的方法得到的,出现概率高的字母使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。原创 2017-07-30 15:41:59 · 398 阅读 · 0 评论 -
Dijkstra
Dijkstra 算法Dijkstra算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边原创 2017-07-30 15:14:59 · 497 阅读 · 0 评论 -
稀疏矩阵
有的时候我们需要将二维数组进行压缩, 实现资源的充分利用 比如: a[4][4]={ 1, 2, 0, 0 4, 0, 0, 3 0, 5 }; 数组为0的空间都是没有利用的, 所以就需要将为的地方进行压缩 功能实现查找, 转置 重要的代码都在下面, 注释也写了声明如下原创 2017-11-26 22:48:38 · 388 阅读 · 0 评论