自定义博客皮肤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)
  • 收藏
  • 关注

原创 操作系统----线程

其实可以理解为“更小”的进程。记住一句话,如果CPU可以进行线程的状态的切换,那么在一个进程中的线程,进程中的资源是共享的。

2024-03-21 21:29:23 310 1

原创 操作系统---进程

进程的一些知识

2024-03-21 15:55:33 995 1

原创 剑指offer---二叉树(3)

那么我们可以从后序遍历的末尾找到根节点,找到第一个大于根节点的值的位置,那么从这个节点开始,一直到根节点的前一个节点为止,这一块就是右子树。那么知道了右子树与根节点的位置,剩下的就是左子树的位置。给你一个后序的遍历序列,那么根节点一定在序列末尾,而这是一棵二叉搜素树,这是递归开始的地方,他会一直递归到树的左叶子节点,也就是我们二叉链表开头的位置。6是根节点,8,9,10是右子树,那么前面就是左子树。我们知道,二叉搜索树的中序遍历就是一个有序的序列。比如:7,5,8,9,10,6。

2024-03-15 20:57:36 440 1

原创 剑指offer----二叉树(2)

想法也很自然:由于先序遍历根节点是在第一个位置,所以我们可以利用这样一个特性,在中序遍历的序列中找到根节点的位置,在中序遍历中,根节点的左边位置是左子树,右边是右子树。(2) 这个就有点难理解,其实仔细想想也很好明白,两个树如果其中有一棵树是空的,那么我们就认为他就是另一颗树节点相同(每棵树都有空节点)那么同样的在左子树中继续找到左子树的根节点,按照上面的步骤继续下去,直到到叶子节点位置。(2)再在A树中找与B树相同结构的节点。注意:这里判断树是否是另一棵树的子树时,不能让B树为空,空树是没有意义的。

2024-03-15 20:28:23 342 1

原创 剑指offer---二叉树(1)

遍历二叉树,由于是二叉搜索树,所以,如果按照中序输出的话,就是一个有序的节点顺序(小到大)。那么我们就按照中序输出的方式,遍历到哪个节点就给他标号,找到我们要找的号码,返回输出就行。还有另外一种方法,即用栈模拟的方式来遍历二叉树。我们先把左子树遍历完,再去把其他部分的节点进行遍历。题目内容一句话概括,就是把二叉树排序好后的节点,返回第k个节点。与上题一样也有两种方法。模拟遍历与递归遍历。

2024-03-12 19:59:34 346 1

原创 二叉树以及多叉树一些小技巧

二叉树的前序,中序,后序遍历想必这些概念大家都应该了解。这里,我就不多介绍了。以及前序遍历的动态图对于各个位置的遍历,其时刻对应节点的切换如下图红色箭头表示后序往回走;蓝色箭头表示前序往下走;黑色弧线表示中序节点的切换。。哎,我们是不是有一个算法就是有一个往回走的操作?没错,那就是回溯,即撤销操作。回溯在二叉树里面,在前序做你想要的操作,在后序撤销操作。

2024-03-12 13:06:43 843 1

原创 剑指offer--链表(2)

那么慢指针走了nb步,而要进入环的入口,要走a+lb步(l为整数),也就是说,此时慢指针只需要走a步就可到达环的入口,那么我们不妨把快指针移动到表头,然后一步一步走a步,此时快慢指针必定相遇,就找到了环入口。但是这里多了一个随机指针,也就是说,如果按照老方法,随机指针的位置你是不好处理的。解释一下:1的随机指针指向3 | 2的随机指针指向5 | 3的随机指针指向null | 4的随机指针指向2。方法2:哈希,遍历把链表节点与值存入哈希表中,记录节点出现的次数,如果节点对应的次数为2,那么找到环入口。

2024-03-04 22:35:03 763 1

原创 剑指offer---链表(1)

就是说,有两个排好序的链表,把这两个链表重新结合成一个新链表,得到的新链表也得是有序的。1:利用栈的特性,把链表节点一个个入栈,之后再弹出,得到的链表就是反转后的结果。2:利用双指针,每次取下一个节点,就把置为头节点。

2024-03-03 22:42:04 318

原创 解决 VScode “The remote host may not meet VS Code Server‘s prerequisites for glibc and libstd”问题

解决“The remote host may not meet VS Code Server‘s prerequisites for glibc and libstd”

2024-02-03 16:05:24 529 1

原创 键值为0x00000000共享内存删除

1:可以使用 shmat 函数将其附加到进程的地址空间,然后使用 shmdt 函数将其分离。这将释放该共享内存段,使其成为不可用状态,最后再删除该共享内存。ipcs -mp 看这个共享内存被哪个进程使用,找到后用kill 进程id。当共享内存键值为0x00000000的时候,可能是有进程在使用这个共享内存。用ipcs -m 列出来后有0的键值。2:暴力把使用该共享内存的进程退出。发现此时用ipcrm 删除不了。

2024-01-13 21:28:36 416 1

原创 C++智能指针

指针一个令人头疼的一种类型,很多时候在使用指针的时候,一个不小心可能会操作空指针(野指针),让程序出现十分麻烦的问题。为了避免程序员申请的空间在函数结束时忘记释放,造成内存泄漏这种情况滴发⽣,所以才有了智能指针这个玩意。以下三种指针,其实都是封装的类,相当于智能指针就是给存储原始指针的容器,当超出智能指针的作用域就会调用析构函数把指针的内存释放,就不会出现内存泄漏的情况。智能指针unique_ptr从名字也可以猜到它大致的左右,没错,unique_ptr独享指向它的对象。

2024-01-12 11:36:36 923 1

原创 基数排序与桶排序

基数排序与桶排序,接上次八大排序之后

2024-01-01 20:51:37 325

原创 详解八大排序(冒泡、插入、选择、希尔、归并、快排、堆排、计数)

详解八大排序(冒泡、插入、选择、希尔、归并、快排、堆排、计数)

2024-01-01 16:41:40 956

原创 socket网络编程以及select、poll、epoll详解(万字长文)

全文对select 、poll、epoll流程进行细致分析,全程干货。

2023-12-31 14:05:05 1388 2

原创 位运算实现加减乘除——看不懂你锤我

位运算实现加减乘除详解,不会用到+-*/。看完还不会你锤我

2023-11-14 19:04:31 188

原创 二叉树的建立及遍历(3000字详解)

二叉树遍历(3000字详解)

2023-10-28 22:53:35 64

原创 Makefile常见用法

如果在sub.c文件里面添加一些代码,这个时候main.c已经是最新的了,和之前main.o相比时间已经比之前sub.o晚了,这个时候makefie则会更新。图片中main.o 在执行 gcc main.c -c -o main.o 后才会生成,时间main.o晚于main.c,这个是正常下的情况;执行命令之前,检查依赖->不存在->向下查找其他规则(个工程完全自动编译,极大的提高了软件开发的效率。执行命令之前,检查依赖->存在->执行该命令。中的其它规则一般都是为第一条规则服务的。文件中指令的命令工具。

2023-09-26 22:33:48 40 1

原创 GCC的学习笔记

GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。进入汇编阶段输入: gcc test.i -S -o test.s。使用 gcc test.c -E -o test.i 命令。打开VScode 查看生成的test.s ,生成了汇编代码。输入 gcc test.s -s -o test.o。最后GCC通过链接,将最后的二进制文件生成了可执行程序。高级语言:int a;

2023-09-23 22:49:15 53 1

原创 C++函数指针与回调函数

ok既然已经知道了函数指针是函数的一个地址,那么可以在函数中调用函数嘛?当然可以,这就是函数指针在回调函数中的作用。好比如回调函数可以做一些个性化的事情,比如说咱们每天早上都要刷牙,然后晚上睡觉,那么中间的做的事情我们每个人都不一样,比如说张三喜欢看电视看一整天,李四喜欢玩电脑玩一整天。所以可以写一个函数来概括我们一天做的事情,中间的就是我们的"回调函数"。C++函数指针实际上就是函数的地址,函数名就是函数地址。有个问题可不可以在个性化函数中传递参数呢?

2023-09-14 22:29:51 73 1

空空如也

空空如也

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

TA关注的人

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