数据结构
咕叽咕叽小菜鸟
幸福的深度等于等待的长度。。。fighting!!!
展开
-
Floyd算法求解每一对顶点之间的最短路径2
问题描述: 已知一个各边权值均大于 0 的带权有向图,对每对顶点 vi≠vj,要求求出每一对顶点之间的最短路径和最短路径长度。解决方案: 1.每次以一个顶点为源点,重复执行迪杰斯特拉算法n次。这样,便可求得每一对顶点之间的最短路径。总的执行时间为O(n3)。 2.形式更直接的弗洛伊德(Floyd)算法。时间复杂度也为O(n3)。弗洛伊德算法思想: 假设求从顶点Vi到Vj的最短路径。如果从Vi到Vj有弧,则从Vi到Vj存在一条长度为a原创 2015-05-15 22:03:06 · 3181 阅读 · 0 评论 -
Dijkstra算法求解单源点到其余各顶点的最短距离
单源点最短路径: 给定带权有向图G和源点v, 求从v到G中其余各顶点的最短路径。Dijkstra算法: Dijkstra提出了一个按路径“长度”递增的次序,逐步得到由给定源点到图的其余各点间的最短路径的算法: 假设我们以邻接矩阵cost(代码中为A[ ]数组),表示所研究的有向网的代价矩阵。 迪杰斯特拉算法需要一个原创 2015-05-16 15:49:11 · 13177 阅读 · 0 评论 -
数据结构(1)--线性表顺序表的主要操作的实现
参考书籍:数据结构(C语言版) 严蔚敏 吴伟民编著 清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.基本定义#include<stdio.h>//顺序表:1.使用动态分配的一维数组// 2.使用静态分配的一维数组//本实例使用静态分配#define LIST_I...原创 2016-02-04 03:13:47 · 19306 阅读 · 2 评论 -
数据结构(2)--线性表单链表的主要操作的实现
参考书籍:数据结构(C语言版) 严蔚敏 吴伟民编著 清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.基本定义#include<stdio.h>#include<stdlib.h>//线性表的两种存储结构://1.顺序表(动态数组实现、静态数组实现)//2.链表...原创 2016-02-04 16:14:58 · 2079 阅读 · 8 评论 -
数据结构(3)--线性表实现一元多项式加法
参考书籍:数据结构(C语言版) 严蔚敏 吴伟民编著 清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.简要说明 一元多项式的表示和相加 多项式Pn(x)按升幂可写成: Pn(x) = P0+P1*x+p2*x^2+...+Pn*x^n, 它由n+...原创 2016-02-05 00:00:38 · 40342 阅读 · 4 评论 -
数据结构(4)--循环链表的应用之约瑟夫环问题以及线性表总结之顺序表与链表的比较
参考书籍:数据结构(C语言版) 严蔚敏 吴伟民编著 清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.循环链表应用--约瑟夫环问题1.1问题说明 问题描述:编号为1,2,···,n的n个人围坐在一圆桌旁,每人持有一个正整数的密码。从第一个人开始报数,报到一个预先约定的正整数m时,停止报数...原创 2016-02-05 18:34:33 · 3293 阅读 · 1 评论 -
数据结构(5)--栈的定义以及相关操作的实现
参考书籍:数据结构(C语言版) 严蔚敏 吴伟民编著 清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.栈的定义 栈(stack)是限定在表尾一端进行插入或删除操作的线性表。在栈中,允许插入和删除操作的一端称为栈顶(top),而另一端称为栈底(bottom)。不含元素的栈称为空栈。在栈的运算...原创 2016-02-05 22:26:07 · 6989 阅读 · 1 评论 -
数据结构(6)--栈的应用之中缀表达式求值
参考书籍:数据结构(C语言版) 严蔚敏 吴伟民编著 清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.简要说明分析:设操作符栈op栈 操作数栈num栈op栈里不可能出现')',只可能有'+'、'-'、'*'、'/'、'(',设ch为当前字符,假设输入都是合法的 1.ch为'+'、'-',则...原创 2016-02-20 12:19:43 · 16191 阅读 · 6 评论 -
数据结构(7)—栈的应用之迷宫求解
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.问题描述:采用“穷举求解”方法,从入口出发,顺某一方向向前探索,若能走通,则继续往前走;否则沿原路返回,换一个方向再继续探索。为了保证在任何位置上都能沿原路返回,显然需要用一个后进先出的栈结构来保存从入口到...原创 2016-02-21 01:23:23 · 13227 阅读 · 6 评论 -
数据结构(9)--链队列的定义以及相关操作的实现
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.队列的定义 栈是一种后进先出的数据结构,而在实际问题中还经常使用一种“先进先出” (FIFO---First In First Out)的数据结构:即插入在表一端进行,而删除在表的另一端进行,我们将这种数据...原创 2016-02-21 14:32:36 · 1345 阅读 · 0 评论 -
数据机构(10)--顺序循环队列的实现及相关操作
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.顺序队列顺序队列的类型定义如下:#define maxsize 100/*队列的最大容量*/typedef char QElemtype;struct Queue{ QElemtype dat...原创 2016-02-21 14:56:33 · 5918 阅读 · 0 评论 -
数据结构(11)--串的模式匹配算法之BF、KMP算法
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.串的存储1.1定长顺序存储串的定长顺序存储(静态数组): #define MAXSTRLEN 255 // 用户可在255以内定义最大串长 typedef unsigned ch...原创 2016-02-23 13:35:40 · 14386 阅读 · 2 评论 -
数据结构(12)--二叉树的静态链表存储和遍历的实现
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.二叉树的定义 二叉树(Binary Tree)是结点的有限集合,这个集合或者是空,或者是由一个根结点和两棵互不相交的称为左子树和右子树的二叉树构成。 以上对二叉树的定义也是一种递归的方式,二叉树...原创 2016-02-29 14:46:54 · 12441 阅读 · 5 评论 -
数据结构(13)二叉树的动态链表存储和遍历的实现
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.动态二叉链表存储即遍历的实现1.1.动态二叉链表的定义#include<stdio.h>#include<stdlib.h>#define NULL 0typedef ...原创 2016-02-29 15:23:14 · 3036 阅读 · 0 评论 -
数据结构(14)--线索二叉树的实现
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.什么是线索二叉树 空的左孩子指针指向该结点的前驱;空的右孩子指针指向该结点的后继。这种附加的指针值称为线索,带线索的二叉树称为线索二叉树。 在不同的遍历次序下,二叉树中的每个结点一般有不同的前...原创 2016-03-01 10:56:08 · 7624 阅读 · 1 评论 -
数据结构(15)--哈夫曼树以及哈夫曼编码的实现
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.哈夫曼树 假设有n个权值{w1, w2, ..., wn},试构造一棵含有n个叶子结点的二叉树,每个叶子节点带权威wi,则其中带权路径长度WPL最小的二叉树叫做最优二叉树或者哈夫曼树。 特点:哈...原创 2016-03-01 17:28:40 · 52047 阅读 · 28 评论 -
数据结构(16)--图的存储及实现
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社 本文中的代码可从这里下载:https://github.com/qingyujean/data-structure 图状结构是一种比树形结构更复杂的非线性结构。在树状结构中,结点间具有分支层次关系,每一层上的结点只能和上一层中的至多一个结点相关,但可能和下一层的多个结点相关。而在图状结构中,任意两个结点之间都可能相关...原创 2016-03-03 18:28:00 · 13970 阅读 · 4 评论 -
数据结构(17)--图的遍历DFS和BFS
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure 从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次。这一过程就叫做图的遍历。示例:1.深度优先遍历基本思想: 从图中某顶点V0出发,访问此顶点,然后依次从V0的各个未被访问的...原创 2016-03-04 00:20:43 · 9636 阅读 · 0 评论 -
数据结构(18)--Prim算法求解无向网的最小生成树
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.最小生成树 对于带权的连通图(连通网)G,其生成树也是带权的,将权值之和最小的生成树称为最小生成树。 最小生成树的MST性质: 假设 N =(V,{E})是一个连通网,U是顶点集 V 的...原创 2016-03-07 09:02:46 · 13419 阅读 · 1 评论 -
数据结构(19)--DAG应用之AOE网的拓扑排序
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.有向无环图 有向无环图(directed acycline graph)简称DAG图,是描述一项工程或系统的进行过程的有效工具。对整个工程和系统,人们关心的是两个方面的问题:一是工程能否顺利进行;二是估算...原创 2016-03-07 09:24:08 · 3086 阅读 · 0 评论 -
数据结构(20)--DAG应用之AOE网的关键路径
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.关键路径对整个工程和系统,人们关心的是两个方面的问题: 1)工程能否顺利进行 对AOV网进行拓扑排序 2)估算整个工程完成所必须的最短时间 对AOE网求关键路径...原创 2016-03-07 09:51:09 · 7627 阅读 · 5 评论 -
数据结构(21)--查找之静态查找表
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.静态查找表 查找的定义:给定一个值k,在含有n个结点的表(或文件)中找出关键字等于给定值k的结点,若找到,则查找成功,输出该结点在表中的位置;否则查找失败,输出查找失败的信息。 查找表是由具有同...原创 2016-03-07 14:30:05 · 2485 阅读 · 0 评论 -
数据结构(22)--动态查找之二叉排序树(二叉查找树)
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.动态查找表特点:表结构在查找过程中动态生成。要求:对于给定值 key, 若表中存在其关键字等于 key的记录,则查找成功返回,并且对查找成功的关键字可做删除操作;查找失败则可以做插入关键字等于 key的记录的...原创 2016-03-07 18:23:24 · 6556 阅读 · 0 评论 -
数据结构(23)--排序篇之插入排序
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.直接插入排序1.1基本思想 一趟直接插入排序的基本思想:将记录L.r[i]插入到有序子序列L.r[1..i-1]中,使记录的有序序列从L.r[1..i-1]变为L.r[1..i]。完成这个“插入”...原创 2016-03-08 17:50:52 · 1402 阅读 · 0 评论 -
数据结构(24)--排序篇之交换排序
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.冒泡排序1.1基本思想 小的浮起,大的沉底具体做法:第一趟:第1个与第2个比较,大则交换;第2个与第3比较,大则交换,… 关键字最大的记录交换到最后一个位置上;第二趟:对前n-1个记录进行同样...原创 2016-03-08 18:20:39 · 712 阅读 · 0 评论 -
数据结构(25)--排序篇之选择排序
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1.简单选择排序1.1基本思想 通过 n-i 次关键字间的比较,从无序序列[i..n]的 n-i+1 记录中选出关键字最小的记录加入有序序列(即作为有序序列中的第i个记录)。1.2代码实现...原创 2016-03-08 18:48:22 · 1366 阅读 · 0 评论 -
数据结构(26)--排序篇之归并排序
参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社本文中的代码可从这里下载:https://github.com/qingyujean/data-structure1 2-路归并排序 归并就是将两个或两个以上的有序数据序列合并成一个有序数据序列的过程。 采用归并的思想进行排序—归并排序。 假设初始序列含有 n个记录,则可看成是 n个有序的子序列;每个子序...原创 2016-03-08 20:34:27 · 3580 阅读 · 0 评论 -
java集合类深入分析之TreeMap/TreeSet篇
转载自:http://shmilyaw-hotmail-com.iteye.com/blog/1836431简介 TreeMap和TreeSet算是java集合类里面比较有难度的数据结构。和普通的HashMap不一样,普通的HashMap元素存取的时间复杂度一般是O(1)的范围。而TreeMap内部对元素的操作复杂度为O(logn)。虽然在元素的存取方面TreeMap转载 2016-07-25 11:01:13 · 2606 阅读 · 0 评论