自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

雨辰

We will do as best as we can.

  • 博客(44)
  • 收藏
  • 关注

原创 数据结构知识整理18查找之线性表查找

查找查找(又称检索):指在某种数据结构中找出满足给定条件的元素。被查找的对象是由一组元素组成的表或文件,而每个元素由若干个数据项组成,假设每个元素都有一个能唯一标识该元素的关键字,在这种条件下,查找的定义是:给定一个值k,在含有n个元素的表中找出关键字等于k的元素。若找到,则查找成功,返回该元素的信息或该元素在表中的位置;否则查找失败,返回相关的指示信息。采用何种查找方法,取决于使用哪...

2019-08-02 11:24:54 786

原创 数据结构知识整理17拓扑排序、AOE网与关键路径

拓扑排序设G=(V,E)是一个具有n个顶点的有向图,V中顶点序列v1,v2,…,vn为一个拓扑序列,当且仅当该顶点序列满足下列条件:若<vi,vj>是图中的边(即从顶点vi到顶点vj有一条路径),则在序列中顶点vi必须排在顶点vj之前。在一个有向图中找一个拓扑序列的过程称为拓扑排序。拓扑排序方法:从有向图中选择一个没有前驱(即入度为0)的顶点并且输出它。 从图中删去该...

2019-08-02 11:19:55 828

原创 数据结构知识整理16最短路径

最短路径在一个无权图中,从一个顶点到另一个顶点可能存在多条路径,路径长度不同,把路径长度最短(即经过边数最少)的那条路径称为最短路径,其路径长度叫做最短路径长度或最短距离。对于有权图,应考虑路径上各边的权值,则通常把一条路径上所经过边的权值之和定义为该路径的路径长度或称带权路径长度。从源点到终点可能不止一条路径,把带权路径长度最短的那条路径称为最短路径,其路径长度(权值之和)称为最短路径长度或...

2019-08-02 11:13:42 1633

原创 数据结构知识整理15树结构与普里姆(Prim)算法及克鲁斯卡尔(Kruskal)算法

生成树和最小生成树一个连通图的生成树是该连通图的一个极小连通子图,它含有图中全部顶点,但只有构成一棵树的(n-1)条边。如果在一棵生成树上添加一条边,必定构成一个环,因为这条边使得它依附的那两个顶点之间有了第2条路径。一颗有n个顶点的生成树(连通无向图)有且仅有(n-1)条边,但是,有(n-1)条边的图不一定都是生成树。一个图有n个顶点,如果边小于(n-1)条,则是非连通图;若边大于(n-1)...

2019-03-27 16:20:31 335

原创 数据结构知识整理14图遍历

图的遍历:从给定图中任意指定的顶点(称初始点)出发,按照某种搜索方法沿着图的边访问图中的所有顶点,使每个顶点仅被访问一次,这个过程称为图的遍历。如果给定图是连通的无向图或者是强连通的有向图,则遍历过程一次即可完成,并按顶点访问的先后顺序得到由该图所有顶点组成的一个序列。由于沿着图中的一条路径访问过某一顶点后,可能还会沿着另一条路径回到该顶点,即存在回路。为了避免同一个顶点被重复访问,必须记住每...

2019-03-27 16:19:43 396

原创 数据结构知识整理13图存储结构

图的存储结构:图的存储节点除了要存储图中各个顶点本身的信息外,还要存储各个顶点之间的关系(边的信息)。常用的图的存储结构有邻接矩阵和邻接表。邻接矩阵是表示顶点之间相邻关系的矩阵。设G=(V,E)是含有n(n>0)个顶点的图,各顶点的编号为0~(n-1),则G的邻接矩阵A是n阶方阵,其定义如下:邻接矩阵特点:图的邻接矩阵表示是唯一的 对于含有n个顶点的图,采用邻接矩阵存储...

2019-03-27 16:18:28 530

原创 数据结构知识整理12图

图图形结构属于复杂的非线性数据结构,在实际应用中很多问题可以用图来描述。在图形结构中,每个元素可以有零个或多个前驱和后继,即:元素之间的关系是任意的。图的定义:无论多么复杂的图都是由顶点和边构成的。采用形式化的定义,图G(Graph)由两个集合V(Vertex)和E(Edge)组成,记为G=(V,E),其中V是顶点的有限集合,记为V(G),通常用字母或自然数(顶点的编号)来标识图中顶点。约...

2019-02-16 23:52:42 357

原创 数据结构知识整理11线索二叉树、哈夫曼树、并查集求解等价问题

线索二叉树对于具有n个节点的二叉树,采用二叉链存储结构时,指针域共有2n个,由于只有n-1个节点被有效指针所指向,则共有n+1个空链域。遍历二叉树的结果是一个节点的线性序列。可以利用这些空链域存放指向节点的前驱和后后继的指针。这种指向线性序列中的前驱节点和后继节点的指针,称作线索。由于遍历方式不同,产生的遍历线性序列也不同。做如下规定:当某节点的左指针为空时,令该指针指向前驱节点;当某...

2019-02-16 23:48:49 418

原创 数据结构知识整理10二叉树

二叉树二叉树也称二分树,是有限的节点集合,这个集合或者是空,或者是由一个根节点和两棵互不相交的称为左子树和右子树的二叉树组成。二叉树结构简单,存储效率高,运算算法也相对简单,而且任何m次树都可以转化为二叉树结构。因此二叉树具有很重要的地位。二叉树和2次树的区别,对于非空树:1、二次树中至少有一个节点的度为2,二叉树没有此要求2、二次树不区分左、右子树,二叉树严格区分左、右子树。二叉...

2019-02-16 23:47:32 1720

原创 数据结构知识整理9树

 树形结构属非线性结构,常用的树性结构有树和二叉树。树形结构可以表示元素或节点之间的一对多关系。树树是由n(n≥0)个节点组成的有限集合(记为T)。如果n=0,它是一棵空树,这是树的特例。如果n&gt;0,这n个节点中存在(且仅存在)一个节点作为树的根节点(简称为根root),其余节点可以分为m(m≥0)个互不相交的有限集T1,T2,…,Tm,其中每个子集本身又是一颗符合本定义的树,称...

2019-02-16 23:46:56 634

原创 数据结构知识整理8数组和广义表

数组和广义表数组数组是具有相同类型的数据元素的有限序列,可将其看作是线性表的推广。从逻辑结构上看,数组A是由n(n&gt;1)个相同类型数据元素a1,a2,…an构成的有限序列,其逻辑表示为:             A=(a1,a2,…an)//其中ai(1≤i≤n)表示数组A的第i个元素。一个二维数组可以看作是每个数据元素都是相同类型一维数组的一维数组。以此类推,任何多维数组都...

2019-02-16 23:45:12 954

原创 数据结构知识整理7递归

递归递归是计算机科学中一个重要的方法,很多程序设计语言如C/C++都支持递归程序设计。在定义一个过程或函数时出现调用本过程或本函数的成分,称为递归。若调用自身,称为直接递归。若过程或函数p调用过程或函数q,而q又调用p,称为间接递归。递归关系:一个数列的若干连续项之间的关系。递归数列:由递归关系所确定的数列。递归过程:直接或间接调用自身的过程。递归算法:包含递归过程的算法。...

2019-02-16 23:44:19 1582

原创 数据结构知识整理6串和串模式匹配

串字符串简称串,也是一种线性结构。串的处理在计算机非数值处理中占有重要的地位,如信息检索系统、文字编辑等都是以串数据作为处理对象。串(字符串)是由零个或多个字符组成的有限序列。含零个字符的串称为空串,用Ф表示。串中所含字符的个数称为该串的长度(串长)。通常将一个串表示成“a1a2a3…an”的形式。其中,最外边的双引号(或单引号)本身不是串的内容,它们是串的标志,将串与标识符(如变量名等)...

2019-02-16 23:39:58 903

原创 数据结构知识整理5栈和队列

栈和队列从数据结果的定义看,栈和队列也是一种线性表。其与线性表不同之处在于栈和队列的相关运算具有特殊性,只是线性表相关运算的一个子集。一般线性表插入、删除运算不受限制,而栈和队列上的插入、删除运算均受某种特殊限制。栈和队列也称作操作受限的线性表。栈栈是最常用的和最重要的数据结构之一,用途十分广泛(如二叉树、递归算法转非递归算法)。栈(后进先出表)是一种只能在一端进行插入或删除操...

2019-02-16 23:38:37 338

原创 数据结构知识整理4线性表——顺序表、链表、有序表

线性表线性表是最简单也是最常用的一种数据结构。逻辑结构线性表定义:线性表是具有相同特性的数据元素的一个有限序列。该序列中所含元素的个数叫做线性表的长度,用n表示,n≥0。当n=0时,表示线性表是一个空表,表中不包含任何元素。设序列中第i(i表示逻辑序号)个元素为ai(1≤i≤n),则线性表的一般表示为:                                        ...

2019-02-15 15:20:34 3392

原创 数据结构知识整理3算法基本概念、数据结构+算法=程序

算法算法是在具体存储结构上实现某个抽象运算。确切地说,算法是对特定的求解步骤的一种描述,它是指令地有限序列,其中每一条指令表示计算机的一个或多个操作。算法五个重要的特性:1.有穷性2.确定性3.可行性4.有输入5.有输出程序可不满足有穷性。算法描述:文字描述,语言方式,图形方式,表格方式。算法设计目标:1.正确性2.可使用性3.可读性4.健壮性5.高效率与低存储量需求。 ...

2019-02-15 15:15:11 1059

原创 数据结构知识整理2逻辑结构类型、存储结构类型、数据类型及三元组

逻辑结构类型在不会产生混淆的前提下,常将数据的逻辑结构简称为数据结构。集合:指数据元素之间除了“同属一个集合”的关系外,无其他关系。 线性结构:节点之间存在一对一的关系。特点:开始节点、终端节点都唯一,其余节点仅有一个前驱和一个后继。如线性表。 树形结构:节点之间存在一对多的关系。特点:每个节点最多只有一个前驱,但可以有多个后继,终端节点可以有多个。如二叉树。 图形结构:节点之间存在...

2019-02-15 15:14:01 1771

原创 数据结构知识整理1基本知识及二元组

数据结构数据结构讨论“描述现实世界实体的数学模型(通常为非数值计算)及其之上的运算在计算机上如何表示和实现”。数据结构主要研究数据的各种组织形式及建立在这些组织形式之上的各种运算算法的实现(即数据组织和数据处理的方法)。好的程序=合理的数据结构+好的算法(选择很大程度取决于描述实际问题所采用的数据结构)数据:是描述客观事物的数和字符的集合。从计算机角度看,数据是所有能被输入到计算机...

2019-02-15 15:12:41 4035

原创 C语言基础知识整理附录——关键字、转义字符、ASCLL码表、二维数组指针、指针类型、文件打开方式

数据类型关键字(17个)                           变量属性:1.作用域(可见性)2.生存期(存在性)                                                         自动变量和寄存器变量:离开函数后值不能被引用,也不存在void         无                                    ...

2019-02-15 15:06:10 418

原创 C语言基础知识整理25注释、调试及常见错误

注释 注释是给人看的,并非让计算机执行的。注释可以用汉字或英文字符表示。 注释两种方式:1以//开始的单行注释。(不能跨行,从//开始,到换行符结束)         //如注释内容一行内写不下         //可以在下一行重新用“//”,然后继续写注释。2以/*开始,以*/结束的块式注释。(可以跨行) C89只允许用/*。。。*/形式注释,C99正...

2019-02-15 15:02:55 868

原创 C语言基础知识整理24位运算

位运算位运算是C语言的重要特色,是其他计算机高级语言所没有的。位运算是指以二进制位为对象的运算。指针运算和位运算往往是编写系统软件所需要的。在计算机用于检测和控制领域中也要用到位运算的指针。位运算与位运算符位运算符 运算符 含义 运算符 含义 &amp; 按位与...

2019-02-15 14:59:15 1510

原创 C语言基础知识整理23预处理指令

预处理指令C语言允许在源程序中加入一些“预处理指令”(preprocessing directive),以改进程序设计环境,提高编程效率。预处理指令不是C语言本身的组成部分,无法由编译系统直接编译。必须在对程序进行正式编译(包括词法和语法分析、代码生成、优化等)之前,先对程序中这些特殊的指令进行“预处理”(preprocess,也称“编译预处理”或“预编译”)。把预处理指令转换成相应的程序段,...

2019-02-15 14:57:52 404

原创 C语言基础知识整理22文件位置标记及出错检测

文件位置标记及定位为了对读写进行控制,系统为每个文件设置了一个文件读写位置标记(简称文件位置标记或文件标记),用来指示“接下来要读写的下一个字符的位置”。顺序读:一般在对文件进行顺序读写时,文件标记指向文件开头,这时对文件进行读操作,就读第1个字符,然后文件位置标记向后移一个位置,以此类推,直到遇文件尾,结束。顺序写:如果是顺序写文件,则每写完一个数据后,文件标记顺序后移一个位置,直到...

2019-02-15 14:54:21 634

原创 C语言基础知识整理21文件读写

顺序读写数据文件文件打开之后,就可以对它进行读写了。在顺序写时,先写入的数据存放在文件中前面的位置,后写入的数据存放在文件中后面的位置。在顺序读时,先读文件中前面的数据,后读文件中后面的数据。即对顺序读写来说,对文件读写数据的顺序和数据在文件中的物理顺序是一致的。顺序读写需要用库函数实现。读字符 fgetc(fp);写字符fput(ch,fp); 函数名 调...

2019-02-15 14:52:57 324

原创 C语言基础知识整理20文件类型及文件开启和关闭

文件类型FILE文件类型指针(简称文件指针):每个被使用的文件都在内存中开辟一个相应的文件信息区,用来存放文件的有关信息(文件名,文件状态及文件当前位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是由系统声明的,取名为FILE。例如有一种C编译环境提供的stdio.h头文件中有以下的文件类型声明:typedef struct{       short level;    ...

2019-02-14 11:45:48 619

原创 C语言基础知识整理19文件基本知识

基础知识文件文件(file)是程序设计中一个重要的概念。一般指存储在外部介质上数据的集合。一批数据是以文件的形式存储在外部介质上的。操作系统以文件为单位对数据进行管理。操作系统把各种设备都统一作为文件来处理。从操作系统的角度看,每一个与主机相连的输入输出设备都看作一个文件。文件有不同类型,在程序设计中,主要用到两种文件:程序文件:包括源程序文件(.c)、目标文件(.obj)、可...

2019-02-14 11:43:19 970

原创 C语言基础知识整理18用户自定义数据类型——共用体类型、枚举类型、typedef新类型

共用体类型有时想用同一段内存单元存放不同类型的变量。这种使几个不同的变量共享同一段内存的结构,称为“共用体”类型结构(也称为“联合”)。定义 union 共同体名{成员表列}变量表列;定义共用体类型:union 共用体名{成员表列};定义共用体变量方法:1、先声明共用体类型,再定义该类型的变量共用体类型名 共用体变量名;2、在声明的同时定义变量union 共...

2019-02-14 11:41:45 768

原创 C语言基础知识整理17用户自定义数据类型——结构体变量

用户自定义数据类型C提供一些已定义的数据类型:int,float等,可以用于解决一般问题,也允许用户根据需要自己建立一些数据类型,用其定义变量,以解决复杂问题。结构体变量C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,称为结构体(structre)。在其他高级语言中称为“记录”(record)。结构体类型定义 struct 结构体名{成员表列};struct 结构体...

2019-02-14 11:37:55 1594

原创 C语言基础知识整理16动态内存分配与指向它的指针变量

动态内存分配与指向它的指针变量内存动态分配c语言还允许建立内存动态分配区域,以存放临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放。这些数据是临时存放在一个特别的自由区,称为堆区堆可以根据需要向系统申请所需大小的空间。由于未在声明部分定义其为变量或数组,因此只能通过指针引用。建立内存动态分配malloc,callo...

2019-02-14 11:33:39 559

原创 C语言基础知识整理15指针(2)

指向函数的指针类型名(*指针变量名)(函数参数表列);函数指针如果在程序中定义一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址(又称入口地址)称为这个函数的指针。用函数指针变量调用函数若想调用一个函数,除了可以通过函数名调用以外,还可以通过指向函数的指针变量调用。(*指针变量)(函数参数);//(*指针变量)就是调用函数,其等价于函数名//指针...

2019-02-14 11:29:04 187

原创 C语言基础知识整理14指针妙用

指针变量作函数参数函数参数可以是指针类型,作用是将一个变量的地址传送到另一个函数中。为使在函数中改变的变量值能被主调函数main使用,应用指针变量作为函数参数,在函数执行过程中使指针变量所指向的变量值发生变化,函数调用结束后,这些变量值的变化依然保留下来,这样就实现了“通过调用函数使变量的值发生变化,在主调函数中可以使用这些改变了的值”的目的。若想通过函数调用得到n个要改变的值,可以如...

2019-02-14 11:25:24 1027

原创 C语言基础知识整理13指针

指针指针:一个变量的地址称为该变量的“指针”。由于通过地址能找到所需的变量单元,可以说地址指向(指向通过地址来体现)该变量单元。因此,将地址形象化地称为“指针”。意思是通过它能找到以它为地址的内存单元。“直接访问”:直接按变量名进行的访问。在程序中一般是通过变量名来引用变量的值。实际上是通过变量名找到存储单元的地址,从而对存储单元进行存取操作的。程序经过编译以后将变量名转换为变量地址,...

2019-02-14 11:22:00 359

原创 C语言基础知识整理12内部函数与外部函数

内部函数与外部函数函数本质上是全局的,因为定义一个函数的目的就是要被另外的函数调用。若不加声明的话,一个文件中的函数既可以被本文件中的其他函数调用,也可以被其他文件中的函数调用。根据函数能否被其他源文件调用分为:内部函数和外部函数。内部函数static 类型名 函数名(形参表);如果一个函数只能被本文件中其他函数所调用,它称为内部函数(又称静态函数)。在定义内部函数时,在函数名...

2019-02-14 11:16:46 1359

原创 C语言基础知识整理11变量的存储方式与生存期

动态存储方式与静态存储方式从变量的作用域(空间)角度观察,变量分为全局变量和局部变量。从变量值存在的时间(生存期)观察,变量分为静态存储方式和动态存储方式。静态存储方式指:在程序运行期间由系统分配固定的存储空间的方式动态存储方式指:在程序运行期间根据需要进行动态分配存储空间的方式 内存中供用户使用的存储空间分(1)程序区(2)静态存储区(3)动态存储区数据分别存放在静态...

2019-02-14 11:15:32 1158

原创 C语言基础知识整理10函数

函数模块化程序设计:在设计较大程序时候,往往分为若干程序模块,每个模块包括一个或多个函数,每个函数实现一个特定功能。一个C程序可由一个主函数和若干其他函数构成。由系统调用主函数(main),主函数调用其他函数,其他函数也可以互相调用。同一函数可以被一个或多个函数调用任意多次。程序开始于main结束于main。一个C程序可以由若干个源程序文件(编译时以文件模块为单位)组成,一个源文件可以由若...

2019-02-13 18:19:47 598 1

原创 C语言基础知识整理9字符串处理常用函数

字符串处理函数:使用时候,程序开头要加#include&lt;string.h&gt;puts函数——输出字符串的函数puts(字符数组);       //将一个字符串输出到终端,可以包括转义字符//在输出时将’\0’转换成’\n’,即输出完字符串后换行。 gets函数——输入字符串的函数gets(字符数组);       //从终端输入一个字符串到字符数组,并得到一...

2019-02-13 18:17:06 192

原创 C语言基础知识整理8数组

数组一批具有同名的同属性的数据就组成一个数组(array),数组右下角的数字称为下标。数组是一组有序数据的集合,下标代表数据在数组中的序号; 用一个数组名(如s)和下标来唯一地确定数组中地元素; 数组中地每一个元素都属于同一个数据类型。C语言规定用方括号中的数字来表示下标。数组名作实参,传递的是数组首地址,实参形参共用一段地址单元 一维数组 类型符 数组名[常量表达式];...

2019-02-13 18:15:35 532

原创 C语言基础知识整理7选择结构与循环结构

选择结构两种选择语句:if语句,用来实现两个分支的选择结构 switch语句,用来实现多分支的选择结构 if语句:if(表达式){语句块} [else{语句块}]一般形式:if(表达式)语句1      //表达式可以是关系表达式、逻辑表达式甚至是数值表达式[else 语句2]   //两个选择。可以没有else,也可以在语句中内嵌if语句           ...

2019-02-13 18:13:31 234

原创 C语言基础知识整理6输入输出语句

数据的输入输出输入输出概念:没有输出的程序是没有意义的,输入输出是程序中最基本的操作之一所谓输入输出是以计算机为主体而言 C语言本身不提供输入输出语句,而由C标准函数库中的函数实现 在使用系统库函数时,要在程序开头用预处理指令#include把有关头文件放在本程序中 输入语句scanf(格式控制,地址表列);getchar(c);C标准输入函数scanfscanf(格式控...

2019-02-13 18:07:12 5365

原创 C语言基础知识整理5C基本语句

C语句;表示语句结束一个语句必须在最后有一个分号,分号是语句中不可缺少的组成部分!!!1.控制语句用于完成一定的控制功能if()….else…  //条件语句 for()…      //循环语句 while()…    //循环语句 do…while()  //循环语句 continue       //结束本次循环语句 break         //中止执行sw...

2019-02-13 18:05:05 1513

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除