数据结构
文章平均质量分 85
Ouyang_Lianjun
只有不断的学习,才会。。。。
展开
-
数据结构--线性表详解(一)
这里写链接内容1、前言 线性表是最常用且是最简单的一种数据结构。形如:A1、A2、A3….An这样含有有限的数据序列,我们就称之为线性表。2、线性表的两种表示形式顺序表示(其实就是数组)链表表示(本博客重点将重点介绍的部分)3、线性表一般操作的介绍 线性表一般包含如下几种操作:线性表的操作包括如下几种 (1) InitList(& L) //构造一个空的线性表原创 2016-11-15 16:45:46 · 49557 阅读 · 10 评论 -
B-树的详解
前言博客编写人:Willam博客编写时间:2017/3/27博主邮箱:2930526477@qq.com(有志同道合之人,可以加qq交流交流编程心得)1、背景知识下面这段摘抄自博客:(从B 树、B+ 树、B* 树谈到R 树) 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black原创 2017-03-28 19:44:16 · 43674 阅读 · 17 评论 -
B+树的简单介绍
前言博客编写人:Willam博客编写时间:2017/3/28博主邮箱:2930526477@qq.com(有志同道合之人,可以加qq交流交流编程心得)1、B+树的介绍B+树是B-树的变体,也是一种多路搜索树: 其定义基本与B-树同,除了:有n颗子树的结点中含有n个关键字所有的叶子结点中包含了全部关键字的信息,以及指向包含这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接所原创 2017-03-28 22:11:15 · 9025 阅读 · 0 评论 -
哈希表查找代码实现
前言博客编写人:Willam博客编写时间:2017/3/29博主邮箱:2930526477@qq.com(有志同道合之人,可以加qq交流交流编程心得)1、代码实现的介绍下面我将会实现哈希表的查找代码: 其中我会采取的散列构造函数为最常用的构造函数:除留取余数法 而解决冲突的方法采用以下三种,分别实现:线性探测二次探测链地址法如果需要了解哈希表的详细介绍,可参考博客:哈希表的详解2、线原创 2017-03-29 23:13:29 · 8575 阅读 · 2 评论 -
哈希表(散列表)查找的详解
前言博客编写人:Willam博客编写时间:2017/3/29博主邮箱:2930526477@qq.com(有志同道合之人,可以加qq交流交流编程心得)1、哈希表查找介绍我之前介绍两种方向的查找算法:静态查找算法(折半查找、插值查找、斐波那契查找、分块查找)动态查找算法(二叉排序树、平衡二叉树、B-树、B+树)但是,这些查找算法都是通过从表头开始,挨个挨个的比较记录,才得到我们需要查找的关键原创 2017-03-29 11:48:37 · 7811 阅读 · 0 评论 -
选择排序(包含堆排序)
思路每一趟都从n-i+1(i=1,2,3….n-1)个记录中选择出最小的关键字,作为有序序列的第i个元素。常用的选择排序简单选择排序堆排序简单选择排序思路 (参考:选择排序)数组A,长度为:n,临时变量:i,初始化为1 - 从A[i]~A[n]这n-i+1个元素中,找出最小的关键字,并且记录其下标 - 如果该关键字不是A[i]~A[n]这个序列的第一个元素,则将该两个位置的元素替换 -原创 2017-05-05 19:34:12 · 1135 阅读 · 0 评论 -
折半查找
思路在有序队列中,将查找的关键字和查找范围内的中间元素进行比较,会出现如下三种情况: 1. 关键字和该中间元素相等,则查找成功。 2. 如果关键字比该中间元素大,则将整个查找范围的后半部分作为新的查找范围,重新进行折半查找算法。 3. 如果关键字比该中间元素小,则将整个查找范围的前半部分作为新的查找范围,重新进行折半查找算法。 4. 中间元素不等于关键字且查找范围小于等于1,则说明查找失败。原创 2017-09-19 14:55:34 · 3835 阅读 · 0 评论 -
索引顺序表查找算法(分块查找算法)
算法背景有时候,可能会遇到这样的表:整个表中的元素未必有序,但若划分为若干块后,每一块中的所有元素均小于(或大于)其后面块中的所有元素。我们称这种为分块有序。对于分块有序表的查找首先,我们需要先建立一个索引表,索引表中为每一块都设置–索引项,每一个索引项都包含两个内容:该块的起始地址该块中最大(或最小)的元素显然,索引表是按关键字递增或递减次序排列的。如下图所示: 查找过程在前面建立的索引表的基原创 2017-03-25 23:00:47 · 22090 阅读 · 0 评论 -
二叉排序树详解
前言博客编写人:Willam博客编写时间:2017/3/25博主邮箱:2930526477@qq.com(有志同道合之人,可以加qq交流交流编程心得)1、二叉排序树的介绍二叉排序树又称二叉查找树。二叉排序树有如下性质:如果它的左子树不为空,那么左子树上的所有结点的值均小于它的根结点的值如果它的右子树不为空,那么右子树上的左右结点的值均大于它的根结点的值根结点的左子树和右子树又是二叉排序树。原创 2017-03-26 11:49:50 · 31123 阅读 · 2 评论 -
最短路径问题---SPFA算法详解
前言博客编写人:Willam博客编写时间:2017/3/12博主邮箱:2930526477@qq.com(有志同道合之人,可以加qq交流交流编程心得)1、最短路径问题介绍问题解释: 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径解决问题的算法:迪杰斯特拉算法(Dijkstra算法)弗洛伊德算法(Floyd算法)SPFA...原创 2017-03-12 15:14:35 · 67648 阅读 · 11 评论 -
最短路径问题---Floyd算法详解
前言 Genius only means hard-working all one’s life. Name:Willam Time:2017/3/81、最短路径问题介绍问题解释: 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径解决问题的算法:迪杰斯特拉算法(Dijkstra算法) 弗洛伊德算法(Floyd算法) SPFA算法 之前已经对Di原创 2017-03-11 17:01:37 · 303821 阅读 · 48 评论 -
数据结构--线性表详解(二)
1、前言 线性表中的顺序结构中的它表现出来的问题已经很明确了,就是我们在插入和删除时候,需要移动大量的元素。我们对一个线性表的操作中,最常使用操作无非就是插入、删除、查找这三种,因为顺序表示的时间复杂度无法满足我们追求的快速的要求。为了写出更加高效的代码,于是前辈们就想到了使用链表结构来表示一个线性表2、链表结构 (1)链表结构包括两个域:指针域和数据域 (2)我们根据指针域的多少,把链原创 2016-11-17 19:26:39 · 2741 阅读 · 0 评论 -
数据结构--链表的排序详解
1、前言 前面两篇博客,我已经把线性表的两种基本的表示形式,做了一个基本的介绍和一些对比。但是,我突然发现在链表这里我缺少一个很重要的内容,那就是对我们的链表进行排序,其实,在连接两个链表的时候,就要求我们的那两个链表是有序的。2、链表排序—最简单、直接的方式(直接采用冒泡或者选择排序,而且不是交换结点,只交换数据域)//线性表的排序,采用冒泡排序,直接遍历链表void Listsort(Nod原创 2016-11-18 22:18:26 · 118328 阅读 · 31 评论 -
数据结构----串
前言 Try my best to do want i want to do. Time:2017/1/18 name:Willam1、串的三种表示方式定长顺序存储表示堆分配表示(比较倾向使用这种)链式存储表示2、完原创 2017-02-19 15:25:44 · 3153 阅读 · 0 评论 -
数据结构----BFS和DFS详解
前言 The art of teaching is the art of assisting discovery. Name:Willam Time:2017/2/28这篇博客将会介绍两种遍历图的算法,一种是:DFS—-深度优先搜索,另外一种就是:BFS–广度优先搜索。1、DFS(Depth_First Search)算法思路: 从顶点V开始,访问这个顶点,然后依次从V的未被访问的邻接点出发原创 2017-02-28 19:38:52 · 25579 阅读 · 1 评论 -
数据结构---串的模式匹配算法介绍
前言 The years teach much which the days never knew. Time:2017/2/19 Name:Willam1、介绍 对于文本程序来说,找出一个子串在文本中的位置是特别重要的,我们称那个子串为模式串(pattern),然后我们称寻找的过程为:模式匹配(string match)。2、实现算法(1)—朴素字符串匹配算法原理:从原创 2017-02-21 19:26:05 · 42162 阅读 · 5 评论 -
数据结构--最小生成树详解
前言 A wise man changes his mind,a fool never. Name:Willam Time:2017/3/11、什么是最小生成树现在假设有一个很实际的问题:我们要在n个城市中建立一个通信网络,则连通这n个城市需要布置n-1一条通信线路,这个时候我们需要考虑如何在成本最低的情况下建立这个通信网? 于是我们就可以引入连通图来解决我们遇到的问题,n个城市就是图上的n原创 2017-03-03 19:23:28 · 192800 阅读 · 35 评论 -
数据结构---二叉树的详解
前言 The only thing that overcomes hard luck is hard word. Name:Willam Time:2017/2/221、名词解释树是使用了递归定义的数据结构,树的子树还是树,其结构如下图所示: 度:结点拥有的子树数目,例如上图结点A的度为3,结点E的度为0叶子或终端结点:度为0的结点(没有子树的结点)树的度:各个结点中度的最大值孩子:结点原创 2017-02-24 21:44:02 · 28612 阅读 · 8 评论 -
数据结构---图的详细介绍
前言: In order to change we must be sick and tired of being sick and tired. Name:WIllam Time:2017/2/251、名词解释:图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。在图中的数据元素,我们称之为顶原创 2017-02-27 15:55:30 · 53892 阅读 · 14 评论 -
数据结构---拓扑排序详解
前言 The time of test,family is best. Name:Willam Time:2017/3/61、拓扑排序的介绍对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。 拓扑排序对应施工的流程图具有特别重要原创 2017-03-06 19:54:41 · 102537 阅读 · 13 评论 -
数据结构----关键路径详解
前言 Live beautifully, dream passionately, love completely. Name:Willam Time:2017/3/71、AOE-网介绍我们在学习拓扑排序(如果没学,可以看看这篇博客:拓扑排序详解)的时候,已经接触了什么是AOV-网,AOV-网是优先考虑顶点的思路,而我们也同样可以优先考虑边,这个就是AOE-网的思路。若在带权的有向无环图中,以顶原创 2017-03-07 21:41:38 · 82327 阅读 · 11 评论 -
最短路径问题---Dijkstra算法详解
前言 Nobody can go back and start a new beginning,but anyone can start today and make a new ending. Name:Willam Time:2017/3/81、最短路径问题介绍问题解释: 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径解决问题的算法:...原创 2017-03-08 16:42:46 · 847149 阅读 · 184 评论