- 博客(15)
- 资源 (7)
- 收藏
- 关注
原创 数据结构之图(七)——关键路径
在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,用边长的权值表示活动的持续时间,这种有向图的边表示活动的网,我们称之为AOE网(Activity On Edge Network)。我们把AOE网中没有入边的顶点称为始点或源点,没有出边的顶点称为终点或汇点。由于一个工程,总有一个开始,一个结束,所以正常情况下,AOE网只有一个源点一个汇点。如图所示既然AOE网是表示工程流程的,所以它
2018-01-19 16:31:13 721
原创 数据结构之图(六)——拓扑排序
在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们称为AOV网(Activity On Vertex Network)。AOV网中的弧表示活动之间存在的某种制约关系。设G=(V,E)是一个具有n个顶点的有向图,V中的顶点序列v1,v2,.....,vn,满足若从顶点vi到vj有一条路径,则在顶点序列中顶点vi必在vj之前。则我们称这样的顶点序
2018-01-19 15:49:18 470
原创 数据结构之图(五)——最短路径
对于网图来说,最短路径,是指俩顶点之间经过的边上权值之和最少的路径,并且我们称路径上的第一个顶点是源点,最后一个顶点是终点。而非网图完全可以理解为所有的边的权值都为1的网。从某个源点到其余各顶点的最短路径问题——迪杰斯特拉(Dijkstra)算法这是一个按路径长度递增的次序产生最短路径的算法。它并不是一下子就求出源点到终点的最短路径,而是一步步求出它们之间顶点的最短路径,过程中都是基于已经求出的最
2018-01-19 15:04:00 470
原创 数据结构之图(四)——最小生成树
我们把构造连通网的最小代价生成树称为最小生成树(Minimum Cost Spanning Tree)。普里姆(Prim)算法对下图利用普里姆算法求其最小生成树。步骤如下:代码如下:#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#defin
2018-01-19 12:47:11 430
原创 数据结构之图(三)——图的遍历
从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次,这一过程就叫做图的遍历(Traversing Graph)>深度优先遍历深度优先遍历(Depth_First_Search),也有称为深度优先搜索,简称DFS。从图中某个顶点v出发,访问此顶点,然后从v的未被访问的邻接点出发深度优先遍历图,直至图中所以和v有路径想通的顶点都被访问到。对于非连通图,只需要对它的连通分量分别进行深度优先遍
2018-01-19 12:31:21 584
原创 数据结构之图(二)——图的存储结构
邻接矩阵图的邻接矩阵(Adjacency Matrix)存储方式是用 俩个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(称为邻接矩阵) 存储图中的边或弧的信息。无向图有向图有向网图无向网图的代码//顶点类型应由用户定义typedef char VertexType;//边上的权值类型应由用户定义typedef int EdgeType;//最大顶点数,应由用户定义#defin
2018-01-19 11:08:04 475
原创 数据结构之图(一)——概论
图的定义图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。无向边:若顶点vi到vj之间的边没有方向,则称这条边为无向边(Edge),用无序偶对(vi,vj)来表示。如果图中任意俩个顶点之间的边都是无向边,则称该图为无向图(Undirected graphs)。如图:有向边:若从顶点vi到vj的边有方
2018-01-18 16:42:47 499
原创 数据结构之串——概论
串(string)是由零个或多个字符组成的有限序列,又名叫字符串。一般记为s="a1a2……an"(n>=0),其中,s是串的名称,用双引号括起来的字符序列是串的值,注意引号不属于串的内容。ai(a空格串,是只包含空格的串。注意它与空串的区别,空格串是有内容有长度的,而且可以不止一个空格。子串与主串,串中任意个数的连续字符组成的子序列称为该串的子串,相应地,包含子串的串称为主串。子串在主串中的位置
2018-01-18 12:03:30 305
原创 数据结构之队列(二)——队列的操作
队列的顺序存储结构循环队列我们把队列的这种头尾相接的顺序存储结构称为循环队列。循环队列的顺序存储结构的定义#include "stdafx.h"#define MAXSIZE 100//QElemType类型根据实际情况而定,这里假设为inttypedef int QElemType;//循环队列的顺序存储结构typedef struct { QElemType data[MAXS
2018-01-17 19:01:50 426
原创 数据结构之队列(一)——概论
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为对头。
2018-01-17 18:28:51 233
原创 数据结构之栈(二)——栈的操作
栈的顺序存储结构栈的顺序存储结构的定义#include "stdafx.h"#define MAXSIZE 100//SElemType类型根据实际情况而定,这里假设为inttypedef int SElemType;typedef struct{ SElemType data[MAXSIZE]; //用于栈顶指针 int top;}SqStack;进栈
2018-01-17 18:07:51 752
原创 数据结构之栈(一)——概论
栈(stack)是限定仅在表尾进行插入和删除操作的线性表。我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构。栈的插入操作,叫做进栈,也称压栈,入栈。栈的删除操作,叫做出栈,也有的叫做弹栈。
2018-01-17 16:04:51 283
原创 数据结构之线性表(四)——循环链表和双向链表
将单链表中终端结点的指针端由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表(circular linked list)。为了使空链表与非空链表处理一致,我们通常设一个头结点。如图所示:循环链表带有头结点的空链表。对于非空的循环链表如图所示。双向链表(double linked list)是在单链表的每个结点中,再设置一个
2018-01-16 18:58:46 519
原创 数据结构之线性表(三)——静态链表
让数组的元素都是由俩个数据域组成,data和cur。也就是说,数组的每个下标都都应一个data和一个cur。数据域data,用来存放数据元素,也就是通常我们处理的数据;而游标cur相当于单链表中的next指针,存放该元素的后继在数组中的下标。我们把这种用数组描述的链表叫做静态链表,这种描述方法还有起名叫做游标实现法。我们都数组第一个和最后一个元素作为特殊元素处理,不存数据。我们通常把未被使用的
2018-01-16 18:23:11 399
原创 数据结构之线性表(二)——线性表的操作
顺序存储结构线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。示意图如下:线性表的顺序存储结构//存储空间初始分配量#define MAXSIZE 20//ElemType类型根据实际情况而定,这里假设为inttypedef int ElemType;typedef struct { //数组存储数据元素,最大值为MAXSIZE
2018-01-11 14:19:13 388
PhotoMgr.unitypackage
2017-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人