自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

m0_61548909的博客

团团转,我的快乐员

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

原创 C++ 哈希的应用(补充)

【代码】C++ 哈希的应用(补充)

2022-09-01 18:19:04 520 4

原创 C++ 哈希桶模拟实现(补充)

{{//构造函数{}};{public://待写private://有效数据的个数};}

2022-08-31 01:22:58 270 3

原创 C++ 哈希表模拟实现(补充)

{{};{private://用于增容};}后者直接用vector存储{{};{public://待写private://用于增容//存储的有效数据的个数};}

2022-08-29 23:36:19 523

原创 C++ c++11(上)

1. 左值引用只能引用左值,不能引用右值2. 但是const左值引用既可引用左值,也可引用右值。

2022-08-27 13:26:26 675

原创 C++ 哈希

在 C++98 中, STL 提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到 $log_2N$,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好的查询是,进行很少的比较次数就能够将元素找到,因此在C++11 中, STL 又提供了 4 个unordered系列的关联式容器,这四个容器与红黑树结构的关联式容器使用方式基本类似,只是其底层结构不同,本文中只对unordered_map 和 unordered_set 进行介绍,unordered_multimap和

2022-08-27 11:19:12 2713

原创 C++ map和set

问题:当key不在map中时,通过operator获取对应value时会发生什么问题?注意:在元素访问时,有一个与operator[]类似的操作at()(该函数不常用)函数,都是通过key找到与key对应的value。

2022-08-12 21:35:38 1118 2

原创 C++ AVL树(补充)

代码】C++ AVL树(补充)

2022-08-04 17:45:37 299

原创 C++ map和set(补充)

也可使用重载的箭头,重载的箭头返回数据的指针,数据的指针是一个pair*,pair*再加一个箭头就可以访问first和second。使用erase的前提是set中需要用需要删除的数据,如果没有找到需要删除的数据,使用erase时会出现报错。整体的返回值是迭代器节点里面的数据,节点里面的数据是一个pair。前者返回区间的[,后者返回区间的)。调试可知,返回3所在位置的迭代器,set中没有6时返回7所在位置的迭代器。upper_bound的使用返回>x位置的迭代器。综上,返回>=val的位置迭代器。......

2022-08-01 12:18:10 221 1

原创 C++ 二叉搜索树练习

按照中序的方式遍历,左指针的链接方式如图。

2022-07-31 11:25:36 365

原创 C++ 二叉搜索树(补充)

要删除的节点只有左/右孩子节点的情况,无孩子节点的情况要删除的节点左右孩子节点都不为空的情况(即完成else中的内容),找左子树的最大节点或者右子树的最小节点代替。

2022-07-27 17:27:03 391 1

原创 Linux 环境基础开发工具的使用

在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序.但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装.软件包和软件包管理器,就好比"App"和"应用商店"这样的关系.是Linux下非常常用的一种包管理器.主要应用在Centos等发行版上.关于通过。...

2022-07-26 13:16:50 174

原创 C++ 二叉搜索树

或者是具有以下性质的二叉树若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树。...

2022-07-23 12:29:12 565 1

原创 C++ 多态(补充)

说明在普通场景下,析构函数是不是虚函数没有影响。若定义一个既可指向父类对象又指向子类对象的指针,不构成重写时,存在内存泄漏的问题。函数重载是指在一个类中声明了多个名称相同但参数列表不同的函数,这些参数可能个数、顺序、类型不同,不能靠返回值类型来判断。纯虚函数不只可以声明,还可以定义,但是没意义(即使定义实现出来也无从调用,体现了接口继承)针对虚函数重写,尽量使用协变,严格按照重写要求来,这样代码更容易维护。不构成多态,就是按指针类型去调用的。函数重载是指子类重新定义基类的虚函数。5.虚函数重写的例外。...

2022-07-20 23:28:28 265 1

原创 C++ 多态

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。对于常见的买票程序,比如Student继承了Person。Person对象买票全价,Student对象买票半价。在继承中要。

2022-07-19 19:51:59 332 1

原创 C++ stack,queue(补充):deque,反向迭代器

vector和list的优缺点效率比较。

2022-07-18 13:33:22 281

原创 C++ 继承(补充)

目录继承关系赋值兼容规则 继承中的作用域派生类的默认成员函数构造函数 拷贝构造函数派生类的 operator=派生类的析构函数 思考题:设计出一个类A,让这个类不能被继承继承与友元复杂的菱形继承及菱形虚拟继承*C++编译器如何通过虚继承解决数据冗余和二义性问题?(通过内存调试观察) 以学生类和老师类为例 基类的其他成员在子类的访问方式取小 public>proteced>private,基类的私有成员在派生类中不可见。 私有成员和私有继承 出现错误 在类外收到访问限定符的限制,但是在类里面就

2022-07-14 11:24:29 235

原创 (未完)第十二章:动态内存

shared_ptr和unique_ptr都支持的操作见表12.1shared_ptr的拷贝和赋值 shared_ptr自动销毁所管理的对象略(析构函数)使用了动态生存期的资源的类定义StrBlob类StrBlob构造函数元素访问成员函数StrBlob的拷贝,赋值和销毁略(详见书本)动态分配的const对象内存耗尽(定位new的使用)释放动态内存指针值和delete动态对象的生存期直到被释

2022-07-08 18:09:10 235 5

原创 线性表的查找

目录1.顺序表查找算法顺序查找的实现(带哨兵)顺序查找时间效率分析 顺序查找的特点2.二分查找(详细见专栏:Acwing基础课)二分查找的实现 二分查找的性能分析——判定树 二分查找特点3.分块查找分块查找的实现 分块查找性能分析分块查找特点 4.插值查找(了解)5. 斐波那契查找 改进:运用&,for循环后面加上分号改进:把待查关键字key存入表头(哨兵),从后往前逐个比较,可以免去查找过程中每一步都要检测是否查找完毕,加快速度当ST.length较大时,此改进能使进行一次查找所需的平均时间几乎减少

2022-07-04 23:06:18 336 6

原创 基础算法(三):双指针/位运算/离散化/区间合并

目录1.双指针算法引例最长连续不重复子序列 2.位运算n的二进制表示中第k位是几lowbit(x)操作:返回x二进制表示中的最后一位13.离散化4.区间合并输入一行字符串,输出字符串中的单词,每个单词单独占一行最长连续不重复子序列 当i指针向后移动一个数的时候S[i]=1 i再往后移动一格,S[i]=2,执行while首先剔除1,[j,i]区间中仍有两个2剔除2,j再往后移动一格 i往后移动一格,此时区间中无重复元素,成立 i再往后移动一格,仍成立 lowbit(x)操作:返回x

2022-06-23 18:20:49 1309 4

原创 基础算法(二):高精度/前缀和与差分

目录一.高精度加法高精度减法高精度乘法高精度(大数乘以小数)除法高精度(高精度整数除以低精度整数)二.前缀和与差分一维前缀和二维前缀和 差分二维差分数组下标低位存储数字高位减法高精度 除法高精度(高精度整数除以低精度整数)除法从最高位开始算。加法减法都从最低位开始算二.前缀和与差分一维前缀和二维前缀和原理 推导S(x,y)的方式 差分 二维差分......

2022-06-23 11:12:48 153

原创 Linux权限的理解

目录Linux权限的概念Linux权限管理01.文件访问者的分类(人)02.文件类型和访问权限(事物属性)03.文件权限值的表示方法04.文件访问权限的相关设置方法 fifile指令:目录的权限 粘滞位关于权限的总结 实例:②三位8进制数字实例:使用 sudo分配权限 格式:接受权限的用户登陆的主机 =(执行命令的用户) 命令 实例: 目录的权限 于是, 问题来了~~ 换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目

2022-06-22 17:29:06 305

原创 Linux基本常见指令

目录Linux下基本指令1.is指令2.pwd命令 3.cd指令4.touch指令*5.touch指令*6.rmdir指令&&rm指令 *7.man指令 *8.cp指令 *9.mv指令 10.cat11.more指令*12.less指令(重要)13.head指令 14.tail指令 15.时间相关的指令 16.cal指令*17.find指令:-name18.grep指令19.zip/unzip指令20. tar指令(重要):打包/解包,不打开它,直接看内容21.bc指令22.uname -r

2022-06-17 22:34:19 1082 1

原创 AOE网关键路径

目录1.概念 2.关键路径算法的实现 ​​​​​​四个需要的变量求关键路径的步骤 其中stack2用来存储拓扑序列,以便后面求关键路径时使用。下面是改进过的求拓扑序列算法 下面指代的加粗的部分即为上述代码中注释加上##的部分下面展示关键路径的算法代码...

2022-06-08 18:46:29 485

原创 AOV网拓扑排序

AOV网的特点 拓扑排序概念拓扑排序的方法 检测AOV网中是否存在环的方法 涉及的结构代码

2022-06-08 13:44:31 183

原创 最短路径:Dijikstra算法/Floyd算法

目录1.基础2.单源最短路径——Dijikstra算法3.所有顶点间的最短路径——Floyd算法 思路

2022-06-08 11:47:06 1043

原创 最小生成树:Prim算法 /Kruskal算法(待深入复习理解)

目录1.各种概念和性质 2.prim算法 3.Kruskal算法 4.两种算法比较 无向图的生成树最小生成树构造最小生成树(利用MST性质) 算法思想 算法实现 算法实现

2022-06-08 10:28:49 182 9

原创 PTA函数题相关接口(未完)

目录1.顺序表顺序表的查找顺序表的插入 顺序表的删除顺序表有序插入2.链表带头结点单链表的查询带头结点单链表的插入带头结点单链表的删除两个有序链表序列的合并3.栈和队列顺序栈的基本运算循环队列出队入队(详细见博客http://t.csdn.cn/S8ep1)循环队列入队出队操作(详细见博客http://t.csdn.cn/mkfmL)另类堆栈 十进制转二进制(顺序栈设计和应用)进制转换排队叫号系统5.二叉树 求叶子结点个数后缀表达式哈夫曼编码二叉树的遍历统计二叉树结点个数求二叉树的深度6.图图的创建(邻接

2022-06-07 15:41:51 3242

原创 图的遍历(书本内容)

目录1.DFS邻接矩阵表示图的优先搜索遍历2.BFS 邻接表表示图的优先搜索遍历(通过队列实现非递归算法)3.DFS和BFS算法效率比较 实现深度优先遍历思路那个顶点访问过了就将辅助数组的对应值置为1 DFS算法效率分析*非连通图的遍历 *非连通图的广度遍历 实现广度优先遍历思路BFS算法效率分析...

2022-06-06 21:37:06 107

原创 邻接表/图/DFS/BFS

目录存储形式 采用邻接表法创建无向网邻接表的特点 邻接矩阵与邻接表表示法的关系完整代码 顶点的结构 弧(边)的结点结构图的结构定义邻接表操作举例说明邻接表的特点

2022-06-06 20:40:21 763

原创 邻接矩阵/图/DFS/BFS

目录1.邻接矩阵的表示2.邻接矩阵的存储3.采用邻接矩阵表示法创建无向网 4.基于邻接矩阵的图上各类操作 5.DFS6.BFS7.测试程序(待完成) 权与网连通分量(强连通分量) 无向图 有向图 网(有权图)3.采用邻接矩阵表示法创建无向网创建无向图和有向图的区别 优缺点 声明广度优先搜索需要的队列(图的遍历)基于邻接矩阵的图上操作5.DFS深度优先搜索属于图算法的一种,是一个针对图和树的遍历算法,英文缩写为DFS即Depth First Search。深度优先搜

2022-06-06 11:05:47 1964

原创 哈夫曼树与哈夫曼编码

哈夫曼树的重要定理对于具有n个叶子节点的哈夫曼树,一共需要2*n-1个节点。。因为对于二叉树来说,有3种类型节点,即度数(节点拥有的子树的个数被称为节点的度)为2的节点,和度数为1的节点和度数为0的节点。而哈夫曼树的非叶子节点都是由两个节点合并产生,所以不会出现度数为1的节点。而生成的非叶子节点的个数为叶子节点个数-1,因此n个叶子节点的哈夫曼树,一共需要2*n-1个节点。构建哈夫曼树1.初始化:首先申请2n个单元,然后循环2n-1次,从1号单元开始,依次将1至2n-1所有单元中的双亲,左右孩子的下

2022-06-04 20:37:17 1900

原创 线索二叉树

若结点有左子树,则其 lchild 域指示其左孩子,否则令其 lchild 域指示其前驱;若结点有右子树,则其 rchild 域指示其右r孩子,否则令其 rchild 域指示其后继;为了避免混淆,尚需改变结点的结构,增加两个标志域: 标志域:0表示指示左右孩子,LTagh和RTag等于1分别表示指示前驱和后继以这种结点结构构成的二叉链表作为二叉树的存储结构,叫做线索链表,其中指向结点前驱和后继的指针,叫做线索。加上线索的二叉树称之为线索二叉树,对二叉树以某种次序遍历使其变为线索二叉树的过程叫做线索化。...

2022-06-04 17:49:14 144

原创 二叉树的遍历

目录前序中序后序层序栈的操作#define SElemType BiTreetypedef struct SNode{ SElemType data; struct SNode* next;}SNode,*LinkStack;Status InitStack(LinkStack& S){ S = (LinkStack)malloc(sizeof(SNode)); if (!S) { return 0; } S->next = NULL;

2022-05-17 21:22:02 261

原创 二叉树基本实现

#include <iostream>using namespace std;#define TElemType char;#define Status int;typedef struct BiTNode{ TElemType data; struct BiTNode* lchild, * rchild;}BiTNode,*BiTree;Status InitBiTree(BiTree &T);Status DestroyBiTree(BiTree&.

2022-05-17 20:13:31 332

原创 循环队列的实现

目录1.循环队列的存储结构2.循环队列的初始化3.求队列长度4.循环队列入队5.循环队列出队6.取队头元素7.销毁和清除8.遍历循环队列9.测试用例10.判空1.循环队列的存储结构#include <iostream>using namespace std;#define QElemType int #define Status int #define MAXQSIZE 10typedef struct{ QElemType

2022-05-14 21:33:15 218

原创 链队列的实现

目录1.队列的链式存储结构2.链队的初始化3.链队的入队4.出队5.取队头元素6.销毁队列与清空队列7.队列的判空8.求队列长度9.遍历队列1.队列的链式存储结构#include <iostream>using namespace std;#define QElemType int#define Status inttypedef struct QNode{ QElemType data; struct QNode* next;

2022-05-14 19:08:20 666

原创 顺序栈与链式栈

目录1.顺序栈2.算法3.1数制的转换3.算法3.2括号匹配4.算法3.3链式栈解决表达式求值5.算法3.4舞伴问题6.算法3.5汉诺塔问题1.顺序栈#include <iostream>#include<stdio.h>using namespace std;#define SElemType int#define Status int#define STACK_INIT_SIZE 100#define STACKINCREME

2022-05-12 16:16:32 404

原创 C++ 继承

目录1.继承的概念及定义1.1继承的概念1.2 继承定义 1.2.1定义格式1.2.2继承关系和访问限定符1.2.3继承基类成员访问方式的变化2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数5.继承与友元6.继承与静态成员7.复杂的菱形继承及菱形虚拟继承8.继承的总结和反思9.笔试面试题1.继承的概念及定义 1.1继承的概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,...

2022-05-06 17:14:33 146

原创 第八章 IO库

目录8.1 IO类8.1.1 IO对象无拷贝或赋值8.1.2条件状态8.1.3管理输出缓冲8.2 文件输入输出8.2.1 使用文件流对象8.2.2文件模式8.3 string流8.3.1 使用istringstream8.3.2 使用ostringstream小结术语表已知的几种IO库设施:istream,ostream,cin,cout,cerr,>>,<<,getline8.1 IO类为了支持使用宽字符的语言..

2022-05-05 19:11:49 1022

原创 C++ IO流

目录1. C语言的输入与输出2. 流是什么3. C++IO流3.2 C++文件IO流4. stringstream的简单介绍 1.将数值类型数据格式化为字符串2. 字符串拼接1. C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf()与printf()。 scanf(): 从标准输入设备(键盘)读取数据,并将值存放在变量中。printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。注意宽度输出和精度输出控制。C.......

2022-05-04 19:31:50 388

空空如也

空空如也

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

TA关注的人

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