自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

库蒂尼奥的博客

是coutinho不是continue

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

原创 二叉树的遍历(c语言数据结构实验报告三)

二叉树的遍历一、实验目的或任务二、实验教学基本要求三、实验教学的内容或要求四、实验类型或性质五、实验开出要求六、实验所需仪器设备七、实验所用材料八、实验过程实验项目中文名称:二叉树的遍历实验项目英文名称:Binary tree traverse实验项目编码:3实验学时:5适用专业:信息与计算科学、数学与应用数学所属课程:数据结构开课学院:理学院开课学期:第5学期教材及实验指导书:耿国华主编,《数据结构—(第三版)》,电子工业出版社,2011年一、实验目的或任务通过指导学生上机实践,对

2021-12-03 11:36:51 5892 1

原创 sql语句中的数学函数

abs(number) 绝对值函数bin(number) 十进制转二进制hex(number) 十进制转十六进制conv(number,from_basr,to_base) 将from_base进制的number转换为to_base进制ceiling(number) 向上取整floor(number) 向下取整format(number,decimal_places) 保留decimal_places位小数rand() 返回一个范围在0.0-1.0的随机浮点数mod(numb

2021-09-13 18:22:43 243

原创 sql语句中的字符串函数

charset(str)返回字符串的字符集。concat(str1,str2,...)连接字符串。instr(str1,str2)返回str2在str1中出现的位置(起始位置为1),没有则返回。ucase(str)转换为大写lcaes(str)转换为小写left(str,len)从str中的左边起取len个字符lenth(str)str的长度replace(str,search_str,replace_str)在str中用replace_str替换search_str(不存在.

2021-09-13 13:13:05 1066

原创 Centos操作系统下安装mariadb数据库管理系统

1.查看是否安装mariadbrpm -qa|grep maridb这种情况表示已安装,直接执行第三步,反之若没有任何东西,则执行第二步2.安装mariadbyum install mariadb-serveryum install mariadbyum install mariadb-devel3.启动mariadbservice mariadb start4.关闭mariadbservice mariadb restart5.重启mariadbservice

2021-08-23 20:57:58 224

原创 C++中的智能指针你了解多少

智能指针一、什么是智能指针二、库函数中的智能指针1、auto_ptr2、unique_ptr3、shared_ptr一、什么是智能指针二、库函数中的智能指针1、auto_ptr2、unique_ptr3、shared_ptr

2021-08-05 22:44:27 94

原创 你了解C++中的虚表吗

虚表一、什么是虚表二、虚表是干什么的一、什么是虚表在面试中,面试官会问到一个问题,影响一个类大小的因素有哪些?这是我们就需要知道,影响一个类大小的因素首先就有成员变量,以及继承,以及最重要的一项就是虚函数,而这里的虚表就存放的是指向虚函数首地址的指针。下面我们来看看虚表到底长什么样子对于一个类而言,如果存在虚函数,就一定会有虚表指针,反之,则没有虚表。这个虚表指针指向的就是第一个虚函数的首地址,若存在第二个虚函数,则以此类推,以指针大小为偏移量,所以与其把虚表叫做虚表指针,不如叫做虚表指针数组。

2021-05-11 11:00:08 1681

原创 C++中继承与多态的微冷面试题你了解多少?

虚基表:菱形继承中为了避免代码冗余,所以我们使用虚拟继承的方式,于是在虚拟继承中,继承的不同对象的相同变量保存在同一个地址空间,这个地址空间就需要通过虚基表去定位。虚基表指针存在于有相同变量的不同对象中。具体菱形继承,大家可以参考本篇文章...

2021-05-10 15:08:06 124

原创 链路层协议——以太网协议

以太网协议一、以太网帧格式二、ARP协议2.1 协议格式2.2 作用2.3 工作流程2.4 ARP局域网欺骗攻击三、MTU对于上层协议的影响3.1 TCP协议的影响3.2 UDP协议的影响链路层协议主要是负责相邻设备之间的数据传输。一、以太网帧格式max地址:网卡设备的物理硬件地址,通常出厂时就会设定。48位对端mac地址+48位源端mac地址:无符号6字节整数,标识相邻两个设备。16位上层协议类型:记录网路层(有可能是介于网络层和链路层之间的协议,例如ARP协议、RARP协议)使用的协议,用

2021-05-04 12:05:52 1904

原创 你想了解的IP协议

IP协议一、协议格式二、IP地址管理2.1 IP地址2.2 网段的划分2.3 子网掩码三、 私网与公网一、协议格式4位协议版本:IPV4为4。4位头部长度:以四个字节为单位,所以IP头部最大长度为60字节。8位TOS字段:3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0),4位TOS字段分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本。16位数据报长度:限制IP报文最大长度为64k(包含IP报头),所以对于UDP传输交付到网络层的数据不大于64k-28,对

2021-05-03 14:42:16 189

原创 UDP/TCP协议

传输层典型协议一、UDP协议1.1 协议格式1.2 协议特性1.2.1 无连接1.2.2 不可靠1.2.3 面向数据报1.3 其他二、TCP协议2.1 协议格式2.2 协议特性2.2.1 面向连接2.2.1.1 三次握手2.2.1.2 四次挥手![在这里插入图片描述](https://img-blog.csdnimg.cn/20210331221119527.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_a

2021-04-01 10:45:36 157 2

原创 线程安全(信号量)

信号量一、什么是信号量二、相关接口2.1 定义信号量:sem_t2.2 初始化信号量2.3 P操作2.4 V操作前面我们已经说过,多线程之间自己不具备同步与互斥的功能,所以在多线程访问临界资源过程中,需要去限制线程,使之是安全的,前面我们提到了互斥的实现–互斥锁,同步的实现–条件变量,今天我们接着谈一个信号量一、什么是信号量信号量本质是一个计数器和一个队列pcb等待队列,通过其实现进程间或者线程间的同步与互斥,关于信号量的同步与互斥的实现,我在博客 进程间通信(下) 中谈到过,虽然当时讲到的是多进程,

2021-03-05 10:27:28 959 1

原创 线程安全(条件变量)

条件变量一、什么是同步二、 条件变量2.1 如何实现同步2.1 相关接口2.3 生产与消费者模型2.3.1 生产与消费者模型的基本认识2.3.2 生产与消费者模型的实现(阻塞队列)一、什么是同步对于多线程编程而言,多个线程按照某种规则访问临界资源,避免线程产生饥饿问题,实现临界资源访问的合理性,这就是同步!二、 条件变量2.1 如何实现同步条件变量提供了使线程阻塞,以及唤醒线程的接口,但是什么时候去唤醒,什么时候阻塞,需要用户自己控制合理的时序逻辑(在合适的时候调用条件变量合适的接口)。2.1

2021-03-04 16:25:01 250 1

原创 线程安全(互斥锁)

线程(下)一、线程安全1.1 互斥1.1.1 互斥锁1.1.1.1 原理1.1.1.2 相关接口1.2 同步1.2.1 条件变量1.2.2 信号量二、线程的应用一、线程安全线程安全指的就是多个线程对临界资源访问操作是安全的,但是怎么去实现让其访问操作是安全的了,这里就需要去通过同步与互斥实现了。1.1 互斥互斥:同一时间,只能由一个线程访问临界资源,实现临界资源访问的安全性。互斥的实现我们今天谈一个互斥锁。1.1.1 互斥锁1.1.1.1 原理原理:是一个只能是0和1的计数器,用于在访问临界资

2021-03-04 16:07:29 277

原创 线程概念和线程控制

多线程线程概念线程控制线程安全线程应用线程概念线程控制线程安全线程应用

2021-03-02 17:04:41 268

原创 信号

信号什么是信号信号的三级目录什么是信号信号不是信号量,他是通知进程发生了某个事件,打断进程当前的操作,去处理该事件。信号是一个软件中断,作用是事件通知。linux下有62中信号非可靠1-31可靠信号的三级目录...

2021-02-28 11:21:36 183

原创 进程间通信(下)

消息队列和信号量一级目录二级目录三级目录一级目录二级目录三级目录

2021-02-24 10:42:34 81

原创 进程间通信(中)

共享内存一、什么是共享内存二、如何使用三、特性一、什么是共享内存共享内存实质是一块物理内存,多个进程通过将同一块物理内存映射到自己的虚拟地址空间,通过自己的虚拟地址空间访问这块物理内存,实现进程间数据共享。二、如何使用具体流程:创建共享内存接口:三、特性共享内存是最快的一种方式...

2021-02-23 22:23:15 108

原创 进程间通信(上)

进程间通信管道消息队列共享内存消息量管道消息队列共享内存消息量

2021-02-23 12:10:21 157

原创 重定向

重定向一、重定向1.1 清空重定向(>)1.2 追加重定向(>>)二、dup2一、重定向原理:改变描述符数组对应下标节点中的描述信息,从而改变所操作的文件。标准输出重定向:将本应该写入标准输出的数据不再写入标准输出,而是写入指向的文件。1.1 清空重定向(>)定义:将写入标准输出的数据写入指向文件之前,先清空文件里面的数据。举例:1.2 追加重定向(>>)定义:将写入标准输出的数据追加写入指向文件的末尾。举例:二、dup2接口:int dup2(

2021-02-21 11:28:07 166

原创 标准库IO和系统调用IO的简单使用

基础IO一、标准库IO1.1 fopen1.2 fread1.3 fwrite1.4 fclose二、系统调用IO2.1 open2.1 write2.1 read2.1 close一、标准库IO1.1 fopen1.2 fread1.3 fwrite1.4 fclose二、系统调用IO2.1 open2.1 write2.1 read2.1 close

2021-02-20 09:11:18 228

原创 进程控制

一、进程创建二、进程等待三、进程替换四、进程终止

2021-02-18 12:06:33 117

原创 红黑树

红黑树一、红黑树是什么二、红黑树的性质三、实现红黑树3.1红黑树的定义3.2红黑树的插入3.2.1插入3.2.2颜色调整3.3红黑树的迭代器3.4红黑树的其他操作一、红黑树是什么红黑树也是一种二叉搜索树,只是给每个结点增加了一个存储位去存储颜色,通过对树中各结点之间颜色的限制,并且最长路径比最短路径的两倍短,确保其接近平衡。二、红黑树的性质1.结点的颜色只有红色或者黑色2.根结点一定是黑色3.一个结点为红色,则其的两个孩子结点为黑色(前提是存在孩子结点)4.每个结点到叶子结点的简单路径上,均包

2021-01-28 16:56:54 680

原创 AVL树(平衡二叉树)

目录AVL树是什么AVL树的原理实现AVL树AVL树是什么AVL树的原理实现AVL树

2021-01-17 18:46:50 199

原创 类和对象终体验

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2020-12-21 18:25:27 82

原创 继承(c++)

继承一、什么是继承1.1继承的概念1.2继承的定义1.1.1格式1.1.2继承方式1.1.3继承基类成员访问方式的变化二、继承的相关操作2.1基类与派生类对象的赋值2.2作用域2.3派生类的默认成员函数三、继承与友元四、继承与静态函数五、复杂的菱形继承及菱形虚拟继承一、什么是继承1.1继承的概念继承(inheritance)是面向对象软件技术当中的一个概念。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。它允许程序员在保持原有类(基类)特性的基础上进行扩展,增加功能,产生的新类

2020-12-18 15:21:32 193

原创 类和对象再体验

类的默认成员函数一、初始化和清理1.1 构造函数1.2 析构函数二、拷贝和赋值2.1 拷贝构造2.2 运算符重载三、取地址重载3.1 const成员3.2 取地址及const取地址操作符重载一、初始化和清理1.1 构造函数首先举个例子:class Date{public: //不带参数的构造函数 Date(){ } //带参数的构造函数 Date(int year,int month,int day){ _year = year; _month = month; _day =

2020-11-17 11:52:50 90

原创 string的模拟实现(String)

string的兄弟String一、初始化与清理1.1构造函数1.2析构函数二、运算符重载2.1赋值运算符2.2其他运算符三、迭代器3.1一、初始化与清理1.1构造函数1.2析构函数二、运算符重载2.1赋值运算符2.2其他运算符三、迭代器3.1......

2020-11-15 16:53:31 327 2

原创 类和对象初体验

文章目录1. 面向过程和面向对象的认识2.类2.1 类的认识2.2 访问限定符2.3 类的作用域2.4 类的实例化2.5 类的大小1. 面向过程和面向对象的认识例子(王者荣耀):面向过程:开始游戏,选英雄,进入游戏,双方到达对线,打架收兵,击杀对手,得到经济,推塔,重复上述过程,输出最终结果。面向对象:双方(两者的行为是一样的,都是买装备,收兵,击杀对手)、峡谷系统(负责绘制王者峡谷)、规定系统(规定怎么样算赢,还有击杀对手给的经济高低)、输出系统(推掉最终水晶胜利输出)。2.类2.1 类的认识

2020-11-02 17:56:11 207

原创 运算符重载

概念:运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。目的:增加代码的可读性函数名字:关键字operator后面接需要重载的运算符符号函数原型:返回值类型+operator操作符号+(参数列表)----(例如:bool operator==(参数列表))下面我们用一个简单的Time类进行演示:...

2020-10-24 20:45:16 149

原创 this指针(C++)

一、概念::C++编译器给每个“非静态的成员函数“增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有成员变量的操作,都是通过该指针去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。二、this指针的引出:简单定义一个时间类class time {public: void Settime(int hour,int minute,int second) { _hour = hour; _minute = minute; _

2020-10-16 14:33:24 269

原创 数据结构(二叉树的相关操作)

树的概念:树是一种非线性的数据结构,它是由n(n>=0)个结点组成一个具有层次关系的集合二叉树的概念:一棵二叉树是结点的一个有限集合,该集合有可能为空,也可能是由一个根节点加上左子树和右子树,子树也可以为空,也可以是二叉树二叉树的特点:二叉树不存在度大于2的结点。二叉树的子树有左右之分,其子树的次序不能颠倒。下面我们主要使用c语言去实现二叉树的相关操作在实现之前,我们需要知道,因为二叉树会由根节点和左右子树构成,所以我们在定义结点的时候,需要去将将指针域分为左右指针与指向左右孩子。具

2020-10-09 13:10:27 154

原创 进程概念(下)

四、进程状态简单地说,每个进程都会有描述运行的状态信息,通过状态信息,告诉操作系统这个进程在干什么。linux中的进程状态:1.运行状态®:正在运行或者拿到时间片就可以运行休眠:暂时不需要CPU调度,让出CPU资源,休眠也会有唤醒条件,如果进程状态为休眠,操作系统就会查看是否满足唤醒条件,如果满足则将进程置为运行状态,反之则转到下一进程。2.可中断休眠状态(S):可以被打断的休眠(满足某些条件就会运行或者被一些中断打断休眠后运行)3.不可休眠状态(D):不会被一些中断打断休眠,只能等待唤醒条件满

2020-10-04 13:54:28 109

原创 进程概念(上)

进程概念冯诺依曼体系结构操作系统进程概念一、冯诺依曼体系结构二、操作系统三、进程概念四、进程状态五、环境变量六程序地址空间

2020-10-02 21:06:13 100

原创 缺省参数、函数重载、引用的使用

111

2020-09-22 13:59:51 229

原创 Linux下的常用指令(下)

十七、find指令find+文件名/目录名:查找当前所在文件目录下的文件或者目录(如果是目录,也显示该目录所有文件)十八、grep指令grep+字符串+文件:将文件中具有该字符串的行显示grep -i+字符串+文件:将文件中具有该字符串(不区分大小写)的行显示grep -n+字符串+文件:将文件中具有该字符串的行显示,顺便输出打印的行号grep -v+字符串+文件:反向查找,将文件中没有改字符串的行显示十九、zip和unzip指令(压缩、解压缩)zip+压缩文件.zip+目录/文件:将目

2020-08-05 10:54:49 122 1

原创 数据结构(循环队列)

今天我们谈一谈循环队列,首先什么是循环队列,为什么要有循环队列了?首先我们需要知道对于队列的实现可以使用链表,也可以使用数组,这个我们在前面的博客中谈过了,使用链表就遵循队列的先进先出原则,尾部插入(入队),头部删除(出队),不用考虑扩容(堆的空间足够),并且在出队时,只要移动头部指针,释放头一个元素结点就可以了,但是对于数组去实现队列,就会造成一个问题,我们举例:void QueueOut(QueueNode *p){ assert(p != NULL); if (QueueEmpty(p)){

2020-07-30 22:54:58 276

原创 数据结构(栈和队列的链表方式实现)

栈:一种特殊的线性结构,删除与插入元素的一端为栈顶,另一端为栈底,栈中元素遵循先进后出LIFO((Last In First Out)的原则.栈的实现可以使用数组或者链表,我们今天主要使用链表实现,我们在前面已经谈了单链表的操作,关于栈和队列只不过是对链表加以限制,好了,我们直接开始。一、链栈的定义和初始化//结构定义typedef int STData;typedef struct StackNode{ STData Data; struct StackNode *Next;}Stack

2020-07-26 15:25:05 289

原创 数据结构(带头结点的双向循环链表的相关操作)

在前面的文章我也介绍了链表的结构以及类别,在这里就不提,咱们直接开始一、结构定义以及初始化//结构定义typedef int ItemType;typedef struct TCListNode{ ItemType Data; struct TCListNode *Next; struct TCListNode *Prev;}TCListNode,*TCList;//初始化void TCListInit(TCList *phead){ assert(phead != NULL);

2020-07-26 13:20:31 700

原创 Linux下的常用指令(中)

八、man指令概念:Linux下的命令手册man+命令:查看相关命令的功能以及选项功能man+n+命令:在第n节查找命令man -a+命令:将所有章节对应命令全部显示九、mv指令**mv+源文件或目录+目标文件或目录 **:移动文件或者改变文件的名字mv -f+源文件或目录+目标文件或目录:直接覆盖已经存在的目标文件mv -i++源文件或目录+目标文件或目录:询问是否覆盖已经存在的目标文件十、cat指令cat+文件名:查看文件内容cat -b +文件名:对文件非空行内容编号显

2020-07-23 17:46:42 137

原创 数据结构(带头结点的单向非循环链表的相关操作)

链表的概念:物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链实现。今天,我们就谈谈单向非循环链表(包括带头结点和不带头结点)1.单向非循环链表结构定义以及初始化//结构定义typedef int Datatype;typedef struct ListNode { Datatype Data; //数据域 struct ListNode *Next; //指针域}ListNode,*List;//初始化//1.不带头结点void Lis

2020-07-23 15:11:25 327

空空如也

空空如也

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

TA关注的人

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