自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 类的继承与多态小结

继承继承:在已有类的基础上创建新类的过程一个 B 类继承A类,或称从类 A 派生类 B类 A 称为基类(父类),类 B 称为派生类(子类)类继承关系的语法形式class 派生类名 : 基类名表{数据成员和成员函数声明};基类名表 构成访问控制 基类名1, 访问控制 基类名2 ,… , 访问控制 基类名n访问控制 表示派生类对基类的继承方式,使用关键字:public 公有继承private 私有继承protected 保护继承补充:不论种方式继承基类,派生类都不能直接

2020-05-20 23:01:13 438

原创 标准模板库STL小结

STL概述:STL是C++标准程序库的核心,深刻影响了标准程序库的整体结构STL由一些可适应不同需求的集合类(collection class),以及在这些数据集合上操作的算法(algorithm)构成STL内的所有组件都由模板(template)构成,其元素可以是任意类型STL是所有C++编译器和所有操作系统平台都支持的一种库STL容器的共同操作:1 与大小相关的操作(size o...

2020-04-28 21:51:17 143

原创 阶段小结

递归算法程序直接或间接调用自身的编程技巧称为递归算法。直接或间接调用自身的函数称为递归函数它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。关键:找出递归定义和递归终止条件递归定义:使问题向边界条件转化的规则。递归定义必须能使问题越来越简单。如n!=n*(n-1)!递归终止条件:也就是所描述问题的最简单情况,它本身不再使用递归的定义。1!=1三个步骤:...

2020-04-06 20:05:10 149

原创 排序

排序的基本概念排序:给定一组记录的集合{r1, r2, ……, rn},其相应的关键码分别为{k1, k2, ……, kn},排序是将这些记录排列成顺序为{rs1, rs2, ……, rsn}的一个序列,使得相应的关键码满足ks1≤ks2≤……≤ksn(称为升序)或ks1≥ks2≥……≥ksn(称为降序)。正序:待排序序列中的记录已按关键码排好序。逆序(反序):待排序序列中记录的排列顺序与排...

2019-12-29 14:37:13 98

原创 查找

查找的基本概念:列表:由同一类型的数据元素组成的集合。关键码:数据元素中的某个数据项,可以标识列表中的一个或一组数据元素。键值:关键码的值。主关键码:可以唯一地标识一个记录的关键码。次关键码:不能唯一地标识一个记录的关键码。查找 :在具有相同类型的记录构成的集合中找出满足给定条件的记录。查找的结果 :若在查找集合中找到了与给定值相匹配的记录,则称查找成功;否则,称查找失败。静态查找...

2019-12-29 13:09:04 141

原创 Floyd算法

Floyd算法的基本思想如下:设图g用邻接矩阵法表示,求图g中任意一对顶点vi、 vj间的最短路径。(-1) 将vi到vj 的最短的路径长度初始化为(vi,vj), 然后进行如下n次比较和修正:(0) 在vi、vj间加入顶点v0,比较(vi, v0, vj)和(vi, vj)的路径的长度,取其中较短的路径作为vi到vj的且中间顶点号不大于0的最短路径。(1) 在vi、vj间加入顶点v1...

2019-12-02 17:55:28 100

原创 Dijkstra算法

基本思想:1.设置一个集合S存放已经找到最短路径的顶点,S的初始状态只包含源点v,2.对vi∈V - S,假设从源点v到vi的有向边为最短路径(从v到其余顶点的最短路径的初值)。3.以后每求得一条最短路径v, …, vk,就将vk加入集合S中,并将路径v, …, vk, vi与原来的假设相比较,取路径长度较小者为最短路径。Dijkstra基本思想辅助数组1.dist[MaxSize]数...

2019-12-02 17:55:03 132

原创 Kruskal算法

基本思想1.建立一个无向连通图 G=( V , E ),这里字母就完全按照上课时候的课件来标注了。设最小生成树为T = { U ,TE },其初态为 U = V , TE={ } 。2.按照图中,两点之间的边权进行从小到大的排序2.1. 如果被考察的两条边属于两个不同的连通分量,则把此边纳入最小生成树之中,成为最小生成树中的一条边(加入T中),与此同时把这两个不同的连通分量合并成一个连通分量...

2019-12-02 17:54:26 201

原创 Prime算法

图数组存储的构造函数依然保持着自己的习惯,每个顶点都从1开始计算,不从0,方便输入。比之前的构造函数增加了边权,如果没有赋权则为INF(无穷大)。MGraph(int a[], int n, int e){arcNum = e;vertexNum = n;for (int i = 1; i <= vertexNum; ++i){vertex[i] = a[i];}for...

2019-12-02 17:53:52 594

原创

图的定义:图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G=(V,E)其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合。在线性表中,元素个数可以为零,称为空表;在树中,结点个数可以为零,称为空树;在图中,顶点个数不能为零,但可以没有边。简单图:在图中,若不存在顶点到其自身的边,且同一条边不重复出现。邻接、依附无向图中,对于任意两个顶点vi和顶...

2019-12-02 17:53:21 160

原创 二叉树

二叉树定义:二叉树是n(n≥0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。特点:二叉树是n(n≥0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。注意:二叉树和树是两种树结构。斜树1 .所有结点都只有左子树的二叉树...

2019-12-01 20:53:11 93

原创

树的定义:树:n(n≥0)个结点的有限集合。当n=0时,称为空树;任意一棵非空树满足以下条件:⑴ 有且仅有一个特定的称为根的结点;⑵ 当n>1时,除根结点之外的其余结点被分成m(m>0)个互不相交的有限集合T1,T2,… ,Tm,其中每个集合又是一棵树,并称为这个根结点的子树。树的定义是采用递归方法树的基本术语:结点的度:结点所拥有的子树的个数。树的度:树中各结点度的最...

2019-12-01 14:14:30 139

原创 数组与字符串

串的逻辑结构串:零个或多个字符组成的有限序列。串长度:串中所包含的字符个数。空串:长度为0的串,记为:" “。非空串通常记为:S=” s1 s2 …… sn "其中:S是串名,双引号是定界符,双引号引起来的部分是串值 ,si(1≤i≤n)是一个任意字符。串的逻辑结构:子串:串中任意个连续的字符组成的子序列。主串:包含子串的串。子串的位置:子串的第一个字符在主串中的序号。S1=...

2019-12-01 14:14:18 121

原创 队列

队列的逻辑结构:队列:只允许在一端进行插入操作,而另一端进行删除操作的线性表。空队列:不含任何数据元素的队列。允许插入(也称入队、进队)的一端称为队尾,允许删除(也称出队)的一端称为队头。队列的操作特性:先进先出(FIFO,LILO)循环队列循环队列:将存储队列的数组头尾相接。入队:template void CirQueue::EnQueue(T x){if ((re...

2019-12-01 11:25:39 195

原创

栈的逻辑结构栈:限定仅在表尾进行插入和删除操作的线性表。空栈:不含任何数据元素的栈。允许插入和删除的一端称为栈顶,另一端称为栈底。栈的示意图栈的操作特性:后进先出顺序栈类的声明:顺序栈的实现——入栈操作接口: void Push( T x );template void seqStack::Push ( T x){if (top==MAX_SIZE-1) ...

2019-12-01 11:24:29 97

原创 双链表

数据结构中双链表比单链表的优点更多,在单链表中,我们的Node结点有两个数据成员,分别是data数据,和next指针,这样我们可以通过后继的指针来不断获取下一个结点,从而实现链表的相关操作。而双链表的Node中,不仅有data和后继,还包括有一个last前驱,这样我们找到一个结点后,想要得到他的前驱后继都会方便很多。struct Node{T data;Node*next; // 后继结点...

2019-11-12 08:07:05 351

原创 单链表

通过指针把它的一串存储结点链接成一个链存储结点由两部分组成:data字段link字段 链表结点数据类型的定义在C++中,可以用结构类型来描述单链表的结点 ,由于结点的元素类型不确定,所以采用C++的模板机制。template struct Node{  T data;  Node *next; //此处也可以省略}带头节点的单链表头结点:如果链表有头节点,则...

2019-11-12 08:06:51 64

原创 顺序表

顺序表特点:线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素,作用:线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系。顺序存储的实现:一维数组存储顺序表中的数据。插入操作为了保证数据的完整,顺序表利用循环将第 i 个位置的数值替换掉,循环只可从数据尾部开始,data[i]=data[...

2019-11-12 08:06:40 85

原创 模板

模板分为:函数模板、类模板模板的实例化(important)模板通过参数实例化可以构建具体的函数或类,称为模板函数和模板类。函数模板:格式:template <模板形参表>返回值类型 函数名(参数表){ 函数体 }例如:#include<iostream.h>template //模板定义,T为模板参数T abs(T a) { ...

2019-11-12 08:06:14 65

空空如也

空空如也

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

TA关注的人

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