摘要:
start_kernel ——> setup_arch ——> arch_mem_init ——> bootmem_init ——> init_bootmem_node: 此时,不得不说的就是 bootmem 。 1. 什么是bootmem: 我们都知道,所有的物理内存是交给内核管理的,或者说是交给 阅读全文
摘要:
线索化二叉树: 线索化二叉树指的是将二叉树中的结点进行逻辑意义上的“重排列”,使其可以线性的方式访问每一个结点。 二叉树线索化后每个结点都有一个线性下标,通过这个下标可以快速访问结点,而不需要遍历二叉树。 阅读全文
摘要:
二叉树遍历: 从根结点开始,按照某种次序依次访问二叉树中的所有结点。 前序遍历: 中序遍历: 后序遍历: 层次遍历: 代码实现: 阅读全文
摘要:
指路法定位结点: 通过根结点与目标结点的相对位置进行定位 指路法可以避开二叉树递归的性质“线性”定位 在C语言中可以用 bit 位来进行指路: #define BT_LEFT 0 #define BT_RIGHT 1 typedef unsigned long long BTPos; 二叉树的存储结 阅读全文
摘要:
树结构模型: 1. 双亲孩子表示法模型 每个结点都有一个指向其双亲的指针 每个结点都有若干个指向其孩子的指针 2. 孩子兄弟表示法模型 每个结点都有一个指向其第一个孩子的指针 每个结点都有一个指向其第一个右兄弟的指针 本质是将普通树转化为二叉树 二叉树的定义: 二叉树是由 n (n >= 0) 个结 阅读全文
摘要:
树的定义: 树是一种非线性的数据结构。 树是由 n (n >= 0) 个结点组成的有序集合。 如果 n 为0,称为空树; 如果 n > 0, 则: 有一个结点称为根结点(root),它有直接后继,但没有直接前驱; 除根以外的其他结点划分为 m (m > 0)个互不相交的有限集合 T0, T1, .. 阅读全文