一:内核基础层数据结构
1:双向链表list
a):链表的定义struct list_head{
struct list_head *next,*pre;
}b):container对象和list_entry#define container_of(ptr,type,member){ const typeof(((type *)0->member) *_mptr = (...
分类:
系统相关 时间:
2015-04-16 12:28:29
阅读次数:
238
二叉树首先要有树节点templateclass BinaryNode{public: T element; BinaryNode *left; BinaryNode *right;public: BinaryNode(T passelement); ~BinaryNod...
分类:
编程语言 时间:
2015-04-16 11:57:47
阅读次数:
132
输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \ 4 8 12 16转换成双向链表4=6=8=10=12=14=16解:二元查找树: 它首先要是一棵二元树,在这基础上...
分类:
编程语言 时间:
2015-04-13 18:50:22
阅读次数:
190
双向链表是一个常用的数据结构。它并不复杂,如果我们要自己实现也不是太困难的事情。但既然STL已经给我们提供了一个,不妨直接用。这样做,不但省时省力,而且代码的复用性也好。 头文件与模板类 要想使用STL提供...
分类:
编程语言 时间:
2015-04-12 22:52:21
阅读次数:
262
学校数据结构的课程实验之一。用到的数据结构:双向链表主要功能:对由用户输入的两个任意长的整数进行加减运算主函数: 1 int main() 2 { 3 4 short num;//临时数据段 5 char optr;//运算符 6 char ch;//临时字符接收 ...
分类:
其他好文 时间:
2015-04-11 23:43:57
阅读次数:
283
interface IMyList{ // O(1) // Add an item at the beginning of the list. void AddFirst(T item); // O(1) // Add an item at the end of th...
博客:http://blog.csdn.net/muyang_ren
关于双向链表的原理很多都有说明,我这只是与前面的内核链表作个对比,同样实现数据的增删差改。
截图:
1、main.c
#include "doublelist.h"
int main(void)
{
int num, i;
double_plist list;
doubleli...
分类:
其他好文 时间:
2015-04-11 16:26:02
阅读次数:
200
第三章 进程管理1. fork系统调用从内核返回两次: 一次返回到子进程,一次返回到父进程2. task_struct结构是用slab分配器分配的,2.6以前的是放在内核栈的栈底的;所有进程的task_struct连在一起组成了一个双向链表3. 2.6内核的内核栈底放的是thread_info结构,...
分类:
系统相关 时间:
2015-04-11 16:14:03
阅读次数:
257
双向链表 2015-04-04 Lover雪儿 1 #include 2 #include 3 4 #define OK 1 5 #define ERROR 0 6 #define TRUE 1 7 #define FALSE 0 8 9 t...
分类:
其他好文 时间:
2015-04-04 22:31:48
阅读次数:
313
1.单链表的一个优点是结构简单,但是它也有一个缺点,即在单链表中只能通过一个结点的引用访问其后续结点,而无法直接访问其前驱结点,要在单链表中找到某个结点的前驱结点,必须从链表的首结点出发依次向后寻找,但是需要Ο (n)时间。为此我们可以扩展单链表的结点结构,使得通过一个结点的引用,不但能够访问其后续结点,也可以方便的访问其前驱结点。扩展单链表结点结构的方法是,在单链表结点结构中新增加一个域,该域用...
分类:
其他好文 时间:
2015-04-04 10:41:57
阅读次数:
150