数据结构篇
文章平均质量分 64
数据结构是任何计算机study者都必须要掌握的基础知识,此专栏旨在分享学习~~
HPU_FRDHR
这个作者很懒,什么都没留下…
展开
-
并查集
并查集定义:并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。集就是让每个元素构成一个单元素的集合,也就是按一定顺序将属于同一组的元素所在的集合合并。 在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中...原创 2018-08-15 15:00:52 · 160 阅读 · 0 评论 -
Manacher算法--O(n)回文子串算法
详细了解请看以下链接:https://blog.csdn.net/ggggiqnypgjg/article/details/6645824https://blog.csdn.net/xingyeyongheng/article/details/9310555Problem Description给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度....原创 2018-10-07 15:34:44 · 168 阅读 · 0 评论 -
数据结构之最短路径Dijkdtra算法
题意:两个整数:T和N.接下来T行,每行描述以三个以空格分隔的整数的轨迹。 前两个分别代表两个点,第三个为两点间的距离输出:从N到1必须经过的最小距离 <3> 优先队列优化的djk求单源最短路,链式前向星存图 时间复杂度o(E * log(V)) #include<cstdio>#include<cstring>#include<queu...原创 2018-08-14 17:30:16 · 460 阅读 · 0 评论 -
拓展kmp算法
转载:https://blog.csdn.net/dyx404514/article/details/41831947拓展kmp是对KMP算法的扩展,它解决如下问题:定义母串S,和字串T,设S的长度为n,T的长度为m,求T与S的每一个后缀的最长公共前缀,也就是说,设extend数组,extend[i]表示T与S[i,n-1]的最长公共前缀,要求出所有extend[i](0<=i<...原创 2018-10-21 15:04:37 · 259 阅读 · 0 评论 -
“高级”数据结构——树状数组
从该博客学习后写下的这篇博客...线段树(如果不明白线段树请自行百度)在线段树的基础上只留下左子树,然后进行一些列操作就是树状数组 1. 单点修改 + 区间查询函数模板:int bit[maxn],n,m; //n:总的区间长度 m:m次操作 void update(int i,int x){ //给位置i增加x while(i<=n){ b...原创 2018-08-22 17:12:25 · 219 阅读 · 0 评论 -
数据结构之测试代码终篇
转眼间数据结构课程就要结束了,最后跟大家分享一次代码~~~ ~~~~十进制转化成二进制非递归实现 十进制转化成二进制递归实现 斐波那锲数列非递归实现 斐波那锲数列递归实现 直接插入排序 快速排序 简单选择排序 大数加法1.十进制转化成二进制非递归实现#include<bits/stdc++.h>using namespace std; co...原创 2018-12-19 22:29:50 · 601 阅读 · 2 评论 -
数据结构之排序大综合
冗杂了: 直接插入排序 折半插入排序 希尔排序 冒泡排序 快速排序 选择排序 堆排序 归并排序的一个程序。。。#include<bits/stdc++.h>#include <windows.h> ...原创 2018-12-13 16:40:30 · 489 阅读 · 0 评论 -
数据结构之排序算法
要求:随机函数产生10000 个随机数并统计每一种排序所花费的时间。直接插入法:#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include <windows.h>#include<algorithm>us...原创 2018-11-27 17:09:18 · 401 阅读 · 0 评论 -
数据结构篇之最短路径
————————————最短路径————————————问题抽象:在带权有向图中A点(源点)到达B点(终点)的多条路径中,寻找一条各边权值之和最小的路径,即最短路径。两种常见的最短路径问题:一、 单源最短路径—用Dijkstra(迪杰斯特拉)算法二、所有顶点间的最短路径—用Floyd(弗洛伊德)算法Dijkstra算法思想① 初始化:● 将源点v0加到S中,即S[...原创 2018-11-13 17:56:36 · 1087 阅读 · 0 评论 -
数据结构之DFS递归与非递归遍历邻接表存图
学习邻接表存图请看:https://blog.csdn.net/HPU_FRDHR/article/details/83957240 DFS (深度优先搜索) 深度优先搜索算法(英语:Depth-First-Search,简称DFS)是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,...原创 2018-11-11 12:20:31 · 1260 阅读 · 0 评论 -
数据结构之邻接矩阵邻接表存图
邻接矩阵所谓邻接矩阵(Adjacency Matrix)的存储结构,就是用一维数组存储图中顶点的信息,用矩阵表示图中各顶点之间的邻接关系。假设图G=(V,E)有n 个确定的顶点,即V={v0,v1,…,vn-1},则表示G 中各顶点相邻关系为一个n×n 的矩阵,矩阵的元素为: 下面举个栗子:代码实现如下:#include<iostream>using n...原创 2018-11-11 11:55:54 · 1256 阅读 · 0 评论 -
数据结构之哈夫曼树
一.哈夫曼树的描述: 一般来说,用n(n>0)个带权值的叶子来构造二叉树,限定二叉树中除了这n个叶子外只能出现度为2的结点。那么符合这样条件的二叉树往往可构造出许多棵,其中带权路径长度最小的二叉树就称为哈夫曼树或最优二叉树。 二.哈夫曼树的构造 树的带权路径长度:如果树中每个叶子上都带有一个权值,则把树中所有叶子的带权路径长度之和称为树的带权路径长度。 ...原创 2018-11-11 11:18:54 · 676 阅读 · 0 评论 -
数据结构的代码
注:如果在你的脑上运行出错,请改一下头文件,你的电脑可能不支持万能头文件。修改成:#include<iostream> #include<cstdio>1.普通的a+b#include <bits/stdc++.h>using namespace std;int main(){ int a,b; char c; cin>...原创 2018-10-16 16:02:45 · 452 阅读 · 0 评论 -
树和二叉树
分享一个可以实现建树,遍历树,求数的总结点,叶子节点,树的深度的递归代码。 测试样例:输入:ABC##DE#G##F###运行结果:PreOrder the tree is:ABCDEGFInOrder the tree is:CBEGDFAPostOrder the tree is:CGEFDBA先序遍历序列(非递归):ABCDEGF该二叉树中结点总数...原创 2018-10-26 17:27:09 · 255 阅读 · 0 评论 -
字符串匹配的KMP算法
首先,KMP算法求解什么类型问题? 那就是字符串匹配问题。给你两个字符串,寻找其中一个字符串是否包含另一个字符串,如果包含,返回包含的起始位置。 例如:问题描述A=“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab”B=“aaaaaaaab”判断B是不是A的子串。 对于诸如此类的问题都可以利用KMP算法来解决。它的核心就是:每一趟比较出现字符不...原创 2018-10-20 10:09:54 · 431 阅读 · 0 评论