模型优先队列 (priority queue) 的 ADT 与 queue 类似,它们都提供了基本的 enqueue 与 dequeue 操作。但是 priority queue 可以在 dequeue 时将数据按照一定顺序弹出队列,而不是 FIFO。我们这里主要讨论每
She made a hash of the proper names, to be sure. — Grant Allen 散列函数如果可以将存储的数据,其中某一项用于查找,则这个项被称为 键 (key),而通过一定规则将键映射到表中的一个
如果给定一个序列,你将如何在这个序列中查找一个给定元素 target,当找到时返回该元素的迭代器,否则返回末尾迭代器。首先排除时间复杂度 \(\mathcal{O}(N)\) 的朴
Not all roots are buried down in the ground, some are at the top of a tree. — Jinvirle 树 (tree)Tree 是一些结点的集合,这个集合可以是空集;若不是空集,则 Tree 是由称为 根 的结点 r 以及零或多个非空的子树 \(T_{1}, T_{2},
Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. — Stan Kelly-Bootle 表 (List)我们将形如 \(a_0, a_1, a_2, \cdots, a_{N-1}\) 组成的有限序列称为 list,这个 list 的大小是 \(N (N \in \mathbb{N})\) ,我们将大小
I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships. — Linus Torvalds 基本的数学知识首先我们需要复习一些在初高中可能学
计算机中有很多独占 resource,在任一时刻它们只能被一个进程使用,因此 OS 需要授权一个进程临时地、排他地访问某一 resource 的能力。一般进程会排他性
除了提供抽象外,操作系统还要控制计算机的所有 IO (输入/输出) 设备,必须向设备发送命令、捕获中断并处理设备的各种错误。它还应该在设备和其他部分
对于长期存储的信息有三个基本要求: 能够存储大量信息 使用信息的进程终止时,信息依旧存在 必须能使多个进程并发访问相关信息 磁盘由于其长期存储的性质
内存 (随机访问存储器,RAM) 是计算机中一种需要认真管理的重要资源。不管存储器有多大,程序都能把它填满。经过多年的探索,我们有了 分层存储器体
进程进程 (Process) 是操作系统中的核心概念,是对正在运行的程序的抽象。即使只有一个可用的 CPU,也可以启动多个进程,让操作系统具有并发能力。 进程模型一
微软的软件主要可以通过以下三个渠道获取: 零售 原始设备制造商 (OEM) 批量许可协议 OEM 在工厂执行激活,比如说新买的笔记本电脑自带的系统就是这种方式。零售