- 博客(42)
- 收藏
- 关注
原创 队列(概念 结构 实现)
队列的概率及结构,实现。队列跟栈不同,队列两端都需要进行操作,但是队列只允许一端进行插入数据操作,一端进行删除数据操作。而队列的规定是(First In First Out),插入操作的一端称为,进行删除操作的一端称为。
2024-12-03 03:09:30
410
原创 栈(概念 结构 实现)
Top从0或者1开始,删除和判空和检查有效元素个数,都不同,所以选择好后一定要注意。的规则就行,后进先出可以看出来,插入数据都是尾插,那数组的结构实现更适合,数据尾插代价比较小。选择数组的话,我们选择动态开辟的结构,而入栈和出栈就是顺序表的尾插和尾删操作。额外需要增加的函数:获取栈顶元素,检查栈是否为空,获取栈中有效的元素个数。栈是一种特殊的线性表,特殊在它的固定操作,只允许一端进行插入和删除,而。需要实现栈,可以使用数组或者链表实现,只需要遵循栈。IN:插入数据操作,在栈中称为。注意:栈的下标需要注意。
2024-12-03 02:39:18
363
原创 双向链表的实现(带头双向循环链表)
带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都。是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带。因为是带头双向循环链表,所以先创建返回链表的头节点哨兵位。再利用Find,创建Erase函数,删除Pos位置节点;最后创建一个DESTROY函数,结束程序前释放空间。来很多优势,实现反而简单了。
2024-12-03 00:45:25
252
原创 [Linux]线程概念和创建
什么叫做线程?线程是操作系统调度的基本单位重新理解进程?内核观点,进程是承担分配系统资源的基本实体线程是进程内部的执行流资源。进程是资源分配的基本单位。线程是调度的基本单位。线程共享进程数据,但也拥有自己的一部分数据:1.线程ID2.一组寄存器3.栈4.errno5.信号屏蔽字6.调度优先级线程比进程要更轻量化(为什么?):a.创建和释放更加轻量化b.切换更加轻量化。
2024-03-12 17:37:58
1830
1
原创 [Linux]信号处理
在操作系统中,信号是一种进程间通信的机制,用于通知进程发生了某个特定事件。进程可以识别并处理不同的信号,以执行相应的操作。
2024-01-10 00:37:39
1320
原创 [Linux]信号量
信号量是一种重要的同步机制,用于在多进程或多线程环境中协调共享资源的访问。它是操作系统中常见的同步原语之一,被广泛用于解决并发编程中的临界区问题,确保多个进程或线程能够安全地访问共享资源。
2024-01-06 16:16:27
470
原创 [LINUX]动静态库:链接方式与路径解析
在软件开发中,动态库(Dynamic Library)和静态库(Static Library)是两种常见的代码组织和链接方式。它们在项目开发和维护中扮演着重要的角色,为了更好地理解它们,让我们深入研究这两种库的使用方法和链接过程。如果使用多个库且在同一目录下,只需要 -l 加上去掉前后缀的名称。如果在不同目录下,仍然需要 -I 和 -L 选项,加上路径和文件名。4.在 /etc/ld.so.conf.d/ 路径下创建一个文件,将动态库文件路径放到文件中,然后运行 ldconfig 重新加载。
2023-12-19 02:03:37
1267
原创 深入理解Linux中的exec函数:6个函数详解
在Linux操作系统中,exec函数族是实现程序替换的关键工具。程序替换是指一个进程将自身的执行映像替换为另一个程序的过程。这种机制为进程提供了动态加载新程序的能力,是Unix和Linux系统中进程管理的基石。通过深入了解exec函数族的这六个成员,我们能够更好地理解Linux中程序替换的机制。不同的函数提供了不同层次的灵活性和功能,使得程序员可以根据需求选择最适合的函数。这些函数为Linux系统提供了强大的工具,使得进程能够在运行时动态地加载和执行不同的程序,为系统的可扩展性和灵活性提供了支持。
2023-12-04 23:59:28
1096
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅