摘要: 1.并查集概念 查找一个元素所属集合 合并两个元素各自所属的集合 2.涉及到的操作 并查集初始化 主要是利用数组存储树形结构,初始化的时候将数组元素初始化为自身 路径压缩 将根结点下的所有结点均变为根结点的孩子结点,进而降低查询的深度,降低时间复杂度 集合合并 将秩小的树连接到秩大的树上 3.等价问 阅读全文
posted @ 2018-09-09 21:31 流光易染 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 1、基本概念: 目标串:s 模式串:t 模式串第 j 个元素 :t[j] 2、BF算法: 通过将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种 阅读全文
posted @ 2018-09-01 22:41 流光易染 阅读(2511) 评论(0) 推荐(0) 编辑
摘要: 编译错误 1: error: variably modified 'stack1' at file scope 出现错误代码段: 修改方法: 编译错误 2: warning: ignoring return value of ‘scanf’, declared with attribute warn 阅读全文
posted @ 2018-08-30 23:24 流光易染 阅读(3586) 评论(0) 推荐(0) 编辑
摘要: 线性表的链式存储 链式结构存储密度小,存储空间利用率低 只能顺序存储(其中指针域用来表明节点间的关系) 插入和删除操作方便 代码如下: 1 #include <stdio.h> 2 #include <stdlib.h> 3 typedef int ElemType; 4 5 typedef str 阅读全文
posted @ 2018-08-22 22:57 流光易染 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 顺序表基本运算 顺序表存储密度大、存储空间利用率高 可以通过序号之间访问任何元素,即随机存取 插入和删除时由于要移动大量的元素,耗费时间,时间复杂度为O(n^2) 具体算法如下: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define MaxSize 阅读全文
posted @ 2018-08-21 18:38 流光易染 阅读(741) 评论(0) 推荐(0) 编辑
摘要: 思路: 不要去考虑删除的字眼,要考虑如何进行保存非 x 的值 这里提供两种解法,殊途同归: 1.将其中非 x 的元素统计并保存 2.统计为 x 的元素个数,并将非 x 的元素保存 注意事项: 注意这里代码由于使用了引用(&),只能在 C++ 中编译通过 使用指针的时候一定要注意开辟空间,否则之后可能 阅读全文
posted @ 2018-08-20 23:40 流光易染 阅读(2841) 评论(0) 推荐(0) 编辑
摘要: 数组左移 i 位 3 种方法 1.临时数组存储 先将前 i 个元素用数组存起来 再将后 n - i 个元素左移 i 位 最后将存起来的数组添加到后面去即可 2.通过多次调用左移 1 位的函数 3.翻转 将待移动的数组以 i 为分隔看成两段 AB 先将 A 翻转,再将 B 翻转 之后将数组整个翻转 1 阅读全文
posted @ 2018-08-20 22:07 流光易染 阅读(1128) 评论(0) 推荐(0) 编辑