
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
前面知道,open返回的文件描述符是一个非负整数。程序拿着这个整数,就能继续读写文件,操作系统是怎么根据它找到文件的?可以先看下面的简化关系图:每个进程都有自己的文件描述符表。图中可以把它看作一个数组,数组的每个位置保存着一个指向内核文件对象的指针,文件描述符就是这个位置的下标。进程 → 文件描述符表 → 对应表项 → 内核中的打开文件对象。内核中的打开文件对象会记录这次打开的读写方式、当前偏移量

本文将补充剩下的常见排序算法并对这些排序算法进行个大概的总结,主要是介绍递归类的算法花费的篇幅比较多(快速排序、归并排序),还会尝试把递归的形式改为非递归并补充一些关于排序的小概念。

上一篇介绍进程,这篇接着看看进程的状态、优先级与切换。

前面我们一直在编译程序、运行程序,但程序运行起来以后,操作系统到底在管理什么?磁盘上的可执行文件和我们经常说的进程,是不是同一个东西?这篇先从计算机的硬件结构和操作系统的作用说起,再看看进程是什么、怎样查看进程,以及如何通过。

排序算法算是我们大多数人接触到的第一个算法了就比如大一上C语言教的冒泡排序,算是梦开始的地方了,排序算法除了冒泡排序还有很多种有像冒泡一样简单的也有一些难度比较高的比如快速排序、希尔排序等等。还需要注意的是我们学习排序不一定非要关注它有没有用,有些排序算法虽然相比其他排序比较慢但是还是很有教育意义的可以扩宽我们的思维下面的排序我都以排。

上一篇文章我们实现的搜索二叉树虽然平均效率还不错,但是在比较极端的情况下会退化成一条单支树,这时候原本看起来很快的查找也会变成。

这篇文章主要是补充一些二叉树相关的函数,因为二叉树是用递归来展开的结构所以大多数的函数都是使用递归实现的所以整体的代码量还是比较少的但是很容易因为某个奇奇怪怪的细节问题而导致效率低下或者死递归。

队列是一种一端只能插入数据,一段只能删除数据的数据结构,与栈相反队列是一种先进先出的数据结构,其实也有两边都可以插入与删除的队列这种叫做双端队列,但我这里讲的是普通的队列。其中插入数据的一端为,出数据的一端为。

本文介绍了STL中的三种容器适配器:stack、queue和priority_queue。它们基于现有容器(如vector、deque)实现,通过封装接口提供特定的数据结构功能:stack遵循后进先出,queue遵循先进先出,priority_queue按优先级处理元素。文章还简要探讨了双端队列deque的分段存储结构及其迭代器实现原理,并提供了这三种适配器的简单模拟实现代码,展示了如何复用底层容

摘要: 本文介绍了STL中的关联式容器set、multiset、map和multimap的基本特点和使用方法。关联式容器通过关键字和比较规则组织数据,自动排序并支持高效查找。set和map分别保存关键字和键值对,multiset和multimap允许重复关键字。文章详细讲解了容器的构造、遍历、插入、删除和查找操作,并通过代码示例演示了set的去重排序、map的键值对存储以及operator[]的复








