自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构:哈希

概念哈希冲突闭散列开散列哈希函数装载因子概念顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O( ),搜索的效率取决于搜索过程中元素的比较次数。理想的搜索方法:可以不经过任何比较,一次直接从表中得到要搜索的元素。 如果构造一种存储结构,通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快找到该元素。所以出现了哈希算法.

2021-06-21 20:55:29 252

原创 UDP与TCP

UDP与TCP

2021-06-20 21:38:15 221 1

原创 详解HTTP

URLHTTPhttp报文结构cookie与session一个简单的http服务器HTTP与HTTPSSSL加密方式HTTP1.0、HTTP1.1、HTTP2.0的区别

2021-06-13 16:37:18 396 1

原创 红黑树封装set和map

红黑树封装set和map

2021-06-12 12:08:48 123

原创 红黑树插入操作

红黑树的概念红黑树的性质红黑树的插入

2021-06-09 16:24:38 1162

原创 AVL树(平衡二叉搜索树的模拟实现:四种旋转方式)

AVL树(平衡二叉搜索树的模拟实现:四种旋转方式)

2021-06-02 16:51:54 364

原创 STL关联式容器: map和set

STL关联式容器: map和set

2021-06-01 15:43:00 140

原创 二叉搜索树(kv模型)的模拟实现

二叉搜索树(kv模型)的模拟实现

2021-05-26 18:17:03 254 1

原创 基于Linux套接字编程

socket是一种常见的网络编程,使用socket可以实现不同主机间的通信。下面简单理解一下socket编程的大致流程

2021-05-25 15:59:00 157 5

原创 C++多态

什么是多态如何实现多态override和final关键字抽象类多态的原理三级目录什么是多态面向对象语言的三大特征就是封装,继承,多态。C++函数重载其实就是多态的一种体现,即在使用层面,使用同一个函数,对于不同的参数会调用不同的函数,产生不同的结果。看上去一个函数会出现多中形态。而一般多说的多态指的是在两个具有父子关系的类中调用一个函数,会根据类的不同而调用不同的函数。假如在父类中有一个函数fun,子类继承之后也有函数fun,那在子类中可不可以对该函数进行重载呢?答案是不可以,在子类中如果直接“重.

2021-05-13 15:27:29 186

原创 网络基础体系结构

网络背景局域网与广域网认识协议OSI七层模型TCP/IP五层(四层)模型网络传输基本流程

2021-05-10 18:46:19 284 1

原创 详解C++继承(普通继承,菱形继承与虚拟继承)

继承的概念继承的具体操作继承的格式友元与静态成员的继承菱形继承与虚拟继承

2021-05-05 09:59:42 541

原创 Linux环境下C++实现线程池

Linux环境下C++实现线程池

2021-05-04 10:34:08 297

原创 多线程操作:互斥、同步与信号量(生产者消费者模型两种实现方式)

互斥与同步的概念基于锁实现互斥与同步基于条件变量和锁实现同步基于阻塞队列的生产者与消费者模型什么是信号量?基于信号量的生产者与消费者模型

2021-05-03 16:18:02 1780 3

原创 详解Linux线程

概念创建线程线程等待线程退出与返回值线程分离查看线程的命令线程VS进程

2021-05-03 11:57:46 500 1

原创 STL容器:双端队列deque与优先级队列priority_queue

双端队列deque基于deque的Stack基于deque的queue优先级队列priority_queue双端队列dequedeque是一个双端队列,即可以头插和尾插,也可以头删和尾删。它的优点就是结合了vector与list两个的优点,可是实现随机访问和头插头删,在空间不够需要扩容时也不需要像vector那样复杂,只需要在原来空间的基础上加入新的空间即可。虽然deque具有vector与list的优点,但是由于其复杂的结构,导致其有些操作效率非常低下,譬如排序,直接在deque中排序甚至不如先.

2021-05-01 17:04:58 384 3

原创 C++STL容器----List

概念创建一个ListList访问方式List常见接口

2021-04-27 11:11:06 65

原创 vector介绍与使用

vector概念vector的创建vector的遍历vector常用接口迭代器接口vector空间相关接口vector增删查改接口

2021-04-23 16:27:18 195

原创 深入理解Linux信号

信号的产生信号的处理信号的产生信号的概念

2021-04-21 16:31:45 218

原创 深度剖析管道与共享内存

管道匿名管道命名管道共享内存共享内存命令

2021-04-15 14:53:23 1066

原创 深入理解Linux文件操作,软硬链接与动静态库

文件描述符(句柄)系统调用接口:open()write()lseek()read()dup2()重定向Linux文件系统(inode与软硬链接)inode硬链接软连接动态库与静态库概念静态库动态库

2021-04-07 18:18:04 2394 9

原创 C++string类常见接口函数原型与使用

一、什么是string类?二、类的各个接口构造函数运算符重载=运算符重载[]运算符重载+=运算符重载+运算符重载>>运算符重载<<运算符重载迭代器接口begin()与end()rbegin()与rend()增删查改接口push_back()尾插append()追加insert()指定位置添加erease()size()capacity()rsize()reserve()find()rfind()

2021-04-01 17:53:05 567

原创 深入理解Linux进程控制(进程创建,进程退出,进程等待,进程替换)

进程创建进程终止进程等待进程替换

2021-03-21 17:35:47 152

原创 剑指 Offer 35. 复杂链表的复制(时间复杂度O(n),c++实现)

剑指 Offer 35. 复杂链表的复制(时间复杂度O(n),c++实现)

2021-03-21 15:38:01 197

原创 C++函数模板与类模板

函数模板类模板

2021-03-16 18:37:55 235

原创 C++内存管理详解

内置类型空间申请与释放自定义类型空间申请与释放operator new与operator delete函数定位new表达式(placement-new)

2021-03-16 17:39:26 282

原创 类和对象(explicit关键字,static成员,友元)

类和对象(explicit关键字,static成员,友元)

2021-03-13 15:57:28 190

原创 Linux环境变量

Linux环境变量

2021-03-11 20:23:52 235

原创 C++:类的定义、访问、大小以及this指针

类的定义、访问、大小以及this指针

2021-02-16 14:49:42 192 1

原创 C++入门基础知识(命名空间、缺省参数、函数重载及原理、引用等 )

命名空间C++输入&输出缺省参数函数重载及原理引用auto关键字(C++11)基于范围的for循环(C++11)

2021-02-15 21:36:25 124 1

原创 Linux:vim配置与用法

没有配置过得vim可以直接复制下面这条命令一键配置,配置过得也可以先删除再重新配置

2021-02-15 17:51:57 178

原创 Linux:理解与修改文件权限和粘滞位

文件权限的理解文件默认权限修改文件权限修改默认文件权限修改文件拥有者与所属组文件粘滞位的理解与修改

2021-02-10 16:15:36 240 1

原创 排序:【详解】快排三种方法实现(优化版,三数取中),归并排序,递归和非递归版本

快排三种方法实现(优化版,三数取中),归并排序,递归和非递归版本

2021-02-10 11:58:26 335

原创 (详细图解)直接插入,希尔,选择,堆排,冒泡,计数排序

直接插入,希尔,选择,堆排,冒泡,计数排序

2021-02-08 21:09:36 135

原创 剑指offer07:根据前序遍历和中序遍历重建二叉树(思路,图解,代码)

输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。

2021-02-06 17:06:03 156

原创 数据结构:二叉树的详解及相关操作(创建二叉树,前、中、后、层序遍历,节点个数及衍生问题,判断完全二叉树,查找)

数据结构:二叉树的基本操作(创建二叉树,前、中、后、层序遍历,节点个数及衍生问题,判断完全二叉树,查找)

2021-01-21 17:05:13 204

原创 数据结构:队列介绍以及基本操作

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的特性FIFO(First In First Out)入队列:进行插入操作的一端称为队尾出队列:进行删除操作的一端称为队头

2021-01-15 14:45:30 277

原创 数据结构:栈的介绍以及基本操作

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶

2021-01-15 14:25:05 379

原创 数据结构:双向带头循环链表的基本功能实现

带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,实现反而简单了。

2021-01-10 11:09:59 157

原创 对链表进行插入排序(C语言实现)

一、题目要求对链表进行插入排序。插入排序的动画演示如下。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。示例 1:输入: 4->2->1->3输出: 1-

2021-01-09 10:26:11 9943 4

空空如也

空空如也

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

TA关注的人

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