数据结构
文章平均质量分 74
BJM_
探索未知,崇尚自由。
展开
-
数据结构:图相关概念及遍历算法
【1】图的基本概念(1)图是由顶点集合以及顶点间的关系集合组成的一种数据结构。 Graph = (V,E) V是顶点的又穷非空集合;E是顶点之间关系的有穷集合,也叫边集合。(2)有向图:顶点对是有序的;无向图:顶点对是无序的。(3)无向边:若顶点Vi到Vj之间的边没有方向,则称这条边为无向边,用无序偶对(Vi,Vj)来表示。 如果图中任意两个顶点时间的转载 2017-06-15 21:00:34 · 345 阅读 · 0 评论 -
floyd算法 多源最短路径
#include int main(){ int e[10][10],k,i,j,n,m,t1,t2,t3; int inf=99999999; //用inf(infinity的缩写)存储一个我们认为的正无穷值 //读入n和m,n表示顶点个数,m表示边的条数 scanf("%d %d",&n,&m);原创 2017-08-27 11:10:13 · 234 阅读 · 0 评论 -
数据结构:排序
目前就举例出我所学会的几种算法,并且都是对于内排序而言。冒泡排序1. 代码如下:void bubble_sort_init(int a[SIZE]){ int i,j; for(i=0;i<SIZE-1;i++) { for(j=i+1;j<SIZE;j++) { if(a[i]>a[j])原创 2017-06-12 21:44:46 · 229 阅读 · 0 评论 -
数据结构:哈希表(散列表)
转载自:一、散列表相关概念 散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。建立了关键字与存储位置的映射关系,公式如下:存储位置 = f(关键字) 这里把这种对应关系f称为散列函数,又称为哈希(Hash)函数。详情见:Java中hashCode的作用。 采用散列技转载 2017-06-10 22:52:58 · 258 阅读 · 0 评论 -
数据结构:查找
PS:都是自己认为目前需要掌握熟悉了解的,并不是所有,日后需要的时候再一一补充 查找表:由同一类型的数据元素(或记录)构成的集合。关键字:数据元素中某个数据项的值。若此关键字可以唯一标识一个记录,则称此关键字为主关键字。如果此关键字可以识别多个数据元素(或记录),则称为次关键字。查找就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。原创 2017-06-10 21:49:09 · 2513 阅读 · 0 评论 -
数据结构:三元组
随机生成矩阵,并进行一些简单操作(实验的作业)代码如下:#define MAX 12500#include#includetypedef struct{ int i,j,e;}triple;typedef struct{ triple data[MAX+1]; int mu,nu,tu;}matrix;matrix A,B,C,D;void crea原创 2017-06-09 12:15:03 · 1703 阅读 · 0 评论 -
数据结构:二叉树
1. 树的定义与抽象数据类型(1) 树的定义 树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵非空树中:有且仅有一个特定的称为根(root)的结点;当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、……、Tm,其中每一个集合本身又是一棵树,并且称为根的子树(subTree)。 需要注意的是:n>0时根结点是原创 2017-06-08 22:16:10 · 370 阅读 · 0 评论 -
数据结构:串
串: ADT String{ 数据对象:D={ai|ai(-CharacterSet,i=1,2,...,n,n>=0} 数据关系:R1={|ai-1,ai(-D,i=2,...,n} 基本操作: StrAssign(&T,chars) chars是字符常量。生成一个其值等于chars的串T。 StrCopy(&T,S) 串S存在则由串S复制得原创 2017-06-07 21:12:31 · 488 阅读 · 0 评论 -
数据结构:队列
ADT Queue{数据对象:D={ai|ai∈ElemSet, i=1,2, …,n, n≥0}数据关系:R1={|ai-1,ai∈D, i=1,2, …,n } 约定a1为队列头,an为队列尾。基本操作: InitQueue( &Q ) 操作结果:构造一个空队列Q。 DestroyQueue (原创 2017-06-07 18:37:26 · 203 阅读 · 0 评论 -
数据结构:栈
栈有两种实现方法:1. 顺序储存 顺序栈 2. 链式储存 链栈顺序栈也有两种方法:数组法这种方法实现的时候top指针初始化为-1,而且每次压栈都是top先移动到下一位,再赋值。判断栈满:S->top==STACKSIZE-1这种方法创建的顺序栈无法扩大栈的空间,因此暂时不实现。数组实现的定义:typedef int SElemType;ty原创 2017-06-07 12:36:08 · 257 阅读 · 0 评论 -
数据结构:算法
程序设计=数据结构+算法算法的定义:算法是解决特定问题求解步骤的描述,在计算机中为指令的有限序列,并且每条指令表示一个或多个操作。算法的特性:输入输出 :0个或多个输入,至少一个输出,输出可以是打印输出或者返回一个值有 穷 性 :算法在执行有限步骤后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成正 确 性 :算法的每一个步骤都具有确定的原创 2017-06-06 11:39:05 · 297 阅读 · 0 评论 -
数据结构:绪论
数据结构两个定义:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。数据项是最小不可分割单位,但是数据元素才是数据结构中建立数据模型的着眼点。数据对象是数据的一个子集,针对某一特性划分。不同角度又分为两种结构:逻辑结构:集合结构 线性结构 树形结构 图形结构(网原创 2017-06-06 10:36:50 · 193 阅读 · 0 评论 -
最短路径—Dijkstra算法和Floyd算法
注意:以下代码 只是描述思路,没有测试过!! Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算转载 2017-11-27 22:35:07 · 146 阅读 · 0 评论