内存管理是内核最复杂同时也是最重要的一部。其特点在于非常需要处理器和内核之间的协作。首先内存划分为结点,在内核中表示为pg_data_t,每个结点划分为内存域。 以下的所有数据结构或代码都做了不同程度的精减,一方面是为了保留相关代码,除去细枝末叶,另一方面是为了美观。 结点的数据结构为typedef...
分类:
系统相关 时间:
2014-05-17 04:52:23
阅读次数:
422
这一章虽然长,但因为我不太重视里面繁琐的计算过程所以也没有多少新东西。线性表中每个元素的类型是相同的。表示的方法有顺序映像的顺序表,实际上就是个一维数组,书上用了变长的存储方式;链式表示有线性链表,就是一个结点指向下一个结点,还有静态链表,就是用数组来实现链表,数组内要存储一个元素的位置。又讲了循环...
分类:
其他好文 时间:
2014-05-16 06:09:47
阅读次数:
270
题目链接题意: 给出单链表头指针head和整数n, 要求删除链表的倒数第n个结点,
这里n保证是合法的输入.我的思路....其实我没大明白题目建议的one pass是什么意思, 可能就是遍历一遍链表的,
不过我还是秉着能A掉就万岁的心态...我还是首先记录了链表的长度, 然后删除第len - n +...
分类:
其他好文 时间:
2014-05-16 05:45:56
阅读次数:
348
堆的概念
堆是具有下列性质的完全二叉树:每个节点的值都大于或等于其左右孩子结点的值,称为大顶堆;或着每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。 堆排序
堆排序(Heap Sort)就是利用堆(假设利用大顶堆)进行排序的方法。它的基本思想是,将待排序的序列构造成一个大顶堆。此时,整个序列...
分类:
其他好文 时间:
2014-05-15 16:18:31
阅读次数:
329
首先了解顺序表和链表的概念1.顺序表顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。特点:(1)在顺序表中,各个表项的逻辑顺序与其存...
分类:
其他好文 时间:
2014-05-13 21:04:02
阅读次数:
325
在Cracking the Code Interview上做过了一次,这次在九度OJ上测试,AC。
题目描述:
输入一个链表,输出该链表中倒数第k个结点。
(hint: 请务必使用链表。)
输入:
输入可能包含多个测试样例,输入以EOF结束。
对于每个测试案例,输入的第一行为两个整数n和k(0<=n<=1000, 0<=k<=1000):n代表将要输入的链表元素的个数,k代表要查询倒数第几个的元素。
输入的第二行包括n个数t(1<=t<=1000000):代表链表中的元素。
输出:...
分类:
其他好文 时间:
2014-05-13 13:49:14
阅读次数:
287
线段树札记线段树不是区间树,线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。注意他是把一段连续的区间分为单元区间为叶子节点的一颗数,以此为基础,展开一系列牛逼的计算。首先就是如何建立这么一个线段树?如此递归地建立,对于线段树中的每一个非叶子...
分类:
其他好文 时间:
2014-05-11 22:58:35
阅读次数:
458
这里用邻接表实现图的深度优先遍历,采用递归实现。
#include
using namespace std;
#define VERTEXNUM 5//结点数
struct edgenode
{
int to;
int weight; // 边的权值
edgenode *next;
};
struct vnode
{
int from...
分类:
其他好文 时间:
2014-05-11 20:46:16
阅读次数:
519
转载请注明出处:http://blog.csdn.net/u012860063
#include
#include
using namespace std;
#define lson l , m , rt << 1
#define rson m + 1 , r , rt << 1 | 1
//lson和rson分辨表示结点的左儿子和右儿子
//rt表示当前子树的根(root),也就是...
分类:
其他好文 时间:
2014-05-11 18:55:14
阅读次数:
277
题目链接:1362 - Exploring Pyramids
白书上的例题,思路是对于每个结点,往后遍历分为左右两边子树来考虑,左边的子树为去掉根节点剩下的子树,而右边是要算上根节点的,这样就不会有重复的情况出现,然后根据乘法原理,左右两边情况相乘为总情况数,然后计算这些总和。
f[i][j]表示[i,j]结点的情况种数,那么 f[i][j] = sum{f[i + 1][k - 1] * ...
分类:
其他好文 时间:
2014-05-11 07:02:11
阅读次数:
277