- 博客(85)
- 收藏
- 关注
原创 Linux-线程(LWP)
线程概念引入,与进程区别;线程控制中的创建线程,线程等待,线程中止,线程分离。线程的同步以及互斥,条件变量,锁的使用,信号量。线程池的设计,以及线程安全问题的解决。基于生产者消费者模型的各种实验,环形队列。
2022-12-29 17:02:00
3565
原创 哈希(开散列、闭散列)-位图-布隆过滤器-哈希切分
哈希实现unordered_map unoredered_set的底层原理,哈希中的开散列、闭散列,位图,布隆过滤器,哈希切分
2022-12-06 17:17:29
1181
原创 二叉树练习题分享
**二叉树是常见的数据结构,本期分享二叉树的升级版算法。难懂的地方本人已经做出注释以及相应的图示分析帮助大家理解。**文章目录1. 将二叉树的节点转换成括号表达式(1)做法一:(2)做法二:减少拷贝次数,string 的构造次数。2.“新”层序遍历,实现一次出多个,返回一个二维数组。3.二叉树两个节点的最近公共祖先4.二叉树转换为双向链表5.前中序实现二叉树重建6.非递归实现前中后序遍历1.非递归实现前序遍历2.非递归实现中序遍历3.非递归实现后序遍历7. 每日分享!1. 将二叉树的节点转换成括号
2022-05-01 18:31:46
1014
4
原创 进程控制的理解和板书演示
这篇博客是对于进程控制的完整篇,有进程创建、进程中止、进程等待、进程程序替换的相关概念理解和图片的形式进行的测试演示便于理解。文章目录一、进程创建二、进程中止1. 进程退出场景2. 进程中止3. 进程退出方式4. 进程退出的作用三、进程等待1. 是什么?2. 为什么让父进程等待呢?3. 如何进程等待?僵尸进程回收的演示4. waitpid()介绍和简单使用(1).第一个参数是进程pid(2)第二个参数status(得到退出信息)如何获取子进程的退出信息?父进程拿到什么status结果,一定和子进程如何退出
2022-04-28 21:56:32
406
4
原创 环境变量&&进程地址空间
文章目录一. 环境变量1.浅谈环境变量2. 什么是环境变量3. 命令行参数4.如何获取环境变量?5. 环境变量具有全局性,是因为环境变量是可以被子进程继承的。二. 进程地址空间1. 内存存储的方式:上面是高地址,下面是低地址。2. C/C++程序地址空间,他是内存吗?3. 虚拟内存初步4. 如何使用struct结构体进行各种区域划分,各种区域划分有什么物理意义?5. 虚拟地址和物理结构之间的联系6. 为什么非得有虚拟地址和页表进行映射物理内存呢?7. 为什么要有地址空间?8. 补充说明:一. 环境变量1
2022-04-26 17:47:02
929
1
原创 《剑指offer》每日分享三道题系列 -day 6
今天的主题大致是栈和队列的时候,希望大家可以加深对于站和队列的应用理解文章目录一.找到所含有的最小元素时间复杂度是O(1)(辅助栈)二. 判断是否是栈的弹出序列三.二叉树的层序遍历四.逆波兰表达式的求解(后缀表达式)五. 每日一遍,学习不厌!一.找到所含有的最小元素时间复杂度是O(1)(辅助栈)我们面对这道题的第一个想法是在元素入栈之前进行最小值的判断,如果是最小值就更新一下,这样在将所有元素入栈之后,我们就可以得到最小值。但是如果我想要的是数组元素中第二小的值呢?第三小的值呢?所以这种疑问就引导
2022-04-23 10:29:02
270
3
原创 《剑指offer》每日分享三道题系列-day 5
文章目录一 动态规划类型题的初步理解1.斐波那锲数列(1)迭代的方式(2)递归的方式(map进行剪枝效果)2.兔子繁衍问题3.青蛙跳台阶问题4.小矩形覆盖大矩形的问题二. 二叉树镜像变换三. 在一个排序的单链表,存在重复的节点,删除重复的。四.博主,再来一碗“鸡汤”!一 动态规划类型题的初步理解动态规划是相对比较难理解的类型题,这期博客先给大家分享一些典型的动态规划的类型小题,希望在我的帮助下,大家会对于动态规划有些初步的认识,在后续的系列中,会继续为大家进一步剖析动态规划的相关习题。动态规划我们需要
2022-04-20 15:38:58
255
5
原创 《剑指offer系列》每日分享 day-4
文章目录一. 翻转单链表1.三指针的方法2. 头插的方法(推荐)二. 俩个单调递增的单链表合并为一个不递减的单链表1. 正常做法2.递归的方式实现三.二叉树 判断b是否是a的子树(空树不是任意一棵树的子树)四. 小激励来了一. 翻转单链表1.三指针的方法在我们采用三指针进行单链表的翻转时,我们要考虑到三种情况:(1) 当传过来的这个链表是一个空或者只有一个的时候,就不需要再进行翻转,直接返回就行(2) 就是图示的正常情况,当三个指针指向的都有值。(3)当最后一个指针指向空时,跳出循环要进行特殊处
2022-04-18 14:28:04
1220
原创 《剑指offer系列》-day3
文章目录一. 根据前中序完成二叉树(不包含重复数据)的重建1. 思路:2. 下面代码中的递归语句理解:3. 代码如下(另有相关代码注释帮助理解):二.二进制计算一个数字里面有几个1三. 输入一个单链表,输出倒数第K个节点四. 每日小感慨一. 根据前中序完成二叉树(不包含重复数据)的重建1. 思路:先序遍历第一个就是根节点,所以拿着前序的根节点在中序序列中找到根节点的位置。先找到根节点,进而划分左子树和右子树的前中序序列。划分如下:(1)如何划分前序(根节点,左子树前序,右子树前序)(2)如何划分
2022-04-17 23:00:20
587
原创 《剑指offer》每日分享三道题- 2 day
《剑指offer》系列第二弹,让我们用饱满的热情,迎接接下来的几道小题。 >本系列分享的都是常规做法和全新思路的总结,各位可千万不要看着眼熟,而错过新颖的思路噻!!!文章目录1.将数组中出现次数超过一半的数字返回(1)采用unordered_map方式(2)先排序再找中间位置元素记录次数进行验证(3)候选法,两个不同的数据相消减2. 将字符串中的空格替换成 %203.递归的思路实现单链表的逆序打印4. 大郎,喝鸡汤了!!!1.将数组中出现次数超过一半的数字返回(1)采用unordered_m.
2022-04-02 22:56:44
445
原创 《剑指offer》每日分享三道题 -1 day
《剑指offer》中都是必刷的题目,接下来我将会出一个系列的博文来带大家和我一样完成这一系列的题目。杨氏矩阵查找元素首先给大家一个杨氏矩阵的示意图,如图所示:一个二维数组从左到右,从上到下都是递增的那么我们如何查找到一个数组元素是否存在呢?大多数情况下,在数组元素并不是很多的情况下我们都会进行数组遍历从而确定。接下来将会给大家呈现一种新的方法1.首先我们需要清楚的一件事情就是:*查找的过程就是排除的过程,一次过程排除的越多效率就越高思路:跟右上角(左下角)的元素进行比较, 如果.
2022-04-01 12:05:12
625
1
原创 自定义类型:枚举,结构体,联合体
文章目录枚举1.枚举的定义2.枚举的优点3.枚举的使用结构体联合体枚举1.枚举的定义枚举就是将各种可能的结果一一列举。比如人的性别有男和女,三原色有红绿蓝。枚举的声明:enum Day//星期{ Mon, Tues, Wed, Thur, Fri, Sat, Sun};enum Sex//性别{ MALE, FEMALE, SECRET};enum Color//颜色{ RED, blue, green以上定义的 enum Day , enum S
2021-09-20 21:03:40
406
1
原创 库函数->处理字符和字符串的库函数的介绍和实现
要介绍的有关于字符串的库函数一.求字符串长度:strlen二.长度不受限制的字符串函数:strcpystrcatstrcmp长度受限制的字符串函数介绍:strncpystrncatstrncmp字符串查找:strstrstrtok错误信息报告:strerror字符操作内存操作函数一.求字符串长度:strlensize_t strlen ( const char * str);//括号当中传入首元素地址1.从字符串首元素开始,遇到“\0”就停止,每经过一位就+1,即返回的是\0以前字符的个数。2.
2021-09-18 23:57:06
251
1
原创 指针(中)——传参,函数指针,函数指针数组,指向函数指针数组的指针
目录1.数组传参,指针传参(一)一维数组传参(二)二维数组传参(三)一维指针传参(四)二级指针传参2.函数指针 函数地址的存储: 函数的调用:强化练习,理解两段代码3.函数指针数组函数指针数组的定义函数指针数组的实现4.指向函数指针数组的指针定义1.数组传参,指针传参在写代码的时候难免要把【数组】或者【指针】传给函数,其中要注意传数组,就必须用数组接收,传指针就必须用指针接收。(一)一维数组传参 ...
2021-08-21 19:35:06
780
1
原创 指针的理解与应用(上)——几种常见指针
目录1.字符指针2.指针数组3.数组指针1.字符指针 在指针的类型当中,我们知道有一种字符指针:char*.1.在日常中有两种使用方式(1)将一个字符的地址储存//最普通的指向一个字符 char p = 'w'; char* pa = &p;在解引用中:只打印一个元素,即 w(2)指向一个字符串,实际上也是指向第一个字符。将字符串首个字母H的地址放到p中,因为char类型解引用之后也只能存放一个字节的内容。const char...
2021-08-18 22:30:37
606
5
原创 数据在内存当中的存储(浮点数,整形存储,大小端)
目录浮点数篇大小端的介绍即判断整形在内存中的存储浮点数篇首先说 浮点数家族包括: float、double、long double 类型。 浮点数表示的范围:float.h中定义。首先我们先来看这样一个例子:前后声明的值都为9,但是在整形类型输出和浮点数类型输出时产生明显的差异,就说明整数类型和浮点数类型在内存当中存储的形式是完全不同的。那么浮点数类型在数组当中是怎样存储和取出的呢?(一)浮点数类型在内存当中的存储根...
2021-08-17 23:04:06
450
2
原创 qsort(快速排序)函数和bsearch(二分法查找) 函数
qsort函数C语言编译器函数库自带的排序函数,quick sort快速排列函数。qsort函数包含在C 标准库 - <stdlib.h>中。qsort 的函数原型是void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*));qsort函数通用性比较好,可以排序数组,字符串,结构体等进行升序降序排列。为了让大家便于理解,我们先举一个简单的整形数组的例子:...
2021-08-16 22:30:21
481
4
原创 函数栈帧的创建和销毁(深刻且形象)
对于函数栈帧的创建和销毁知识的理解可以帮助我们更加深入的了解:1.局部变量是如何创建的。2.形参和实参的关系。3.函数的传参是怎么实现的。4,.函数调用结束是如何返回的.事不宜迟,我们现在就开始吧!首先,根据一串代码做出形象的解释:#include<stdio.h>int main(int x, int y){ int z = x + y; return z;}int main(){ int a = 10; int b = 20; int c = 0; c =
2021-08-15 00:03:55
148
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅