基本算法
tanglinux
专注于Linux内核以及C/C++应用程序的开发。
展开
-
例解单链表的基本运算(下)
(3)、插入 单链表的插入运算最主要的操作是获得插入结点,例子代码通过多分支选择结构同时支持按序号查找和按值查找。 参考代码如下: #define FIND_BY_NUM 0#define FIND_BY_KEY 1void insert_node_with_headnode(list_node_p head, list_node_p tmp, unsig原创 2012-02-25 21:24:37 · 1513 阅读 · 0 评论 -
详解Linux内核双向循环链表算法的实现(上)
开发平台:Ubuntu11.04 编译器:gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) 内核源码:linux-2.6.38.8.tar.bz2 据我们所知,单链表只有一个指向其直接后继的指针域,而且只能从某个结点出发顺着指针域往后寻查其他结点。若要寻查结点的直接前趋,则需要从头指针重新开始。为了克服单链表这种单原创 2012-02-27 18:44:29 · 4686 阅读 · 0 评论 -
详解Linux内核双向循环链表算法的实现(下)
2、双向链表在Linux内核中的实现 Linux内核对双向循环链表的设计非常巧妙,链表的所有运算都基于只有两个指针域的list_head结构体来进行。 /* linux-2.6.38.8/include/linux/types.h */struct list_head { struct list_head *next, *prev;}; 链表的运算(源代码都在linu原创 2012-02-27 19:02:42 · 5959 阅读 · 2 评论 -
算法库之二:libredblack的交叉编译
开发平台:Ubuntu11.04 编 译 器:arm-gcc-4.1.1.tar.bz2(可从http://download.csdn.net/detail/npy_lp/3821111上下载);gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) libredblack源码包:libredblack-1.3.tar.gz (可从官网原创 2012-04-07 19:37:16 · 3282 阅读 · 0 评论 -
算法库之三:libcprops的交叉编译
开发平台:Ubuntu11.04 编 译 器:arm-gcc-4.1.1.tar.bz2(可从http://download.csdn.net/detail/npy_lp/3821111上下载);gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) libcprops源码包:libcprops-0.1.12.tar.bz2 (可从官网原创 2012-04-08 13:46:20 · 3787 阅读 · 0 评论 -
算法库之一:libhashish的交叉编译
开发平台:Ubuntu11.04 编 译器:arm-gcc-4.1.1.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3821111上下载);gcc version 4.5.2(Ubuntu/Linaro 4.5.2-8ubuntu4) libhashish源码包:libhashish.tar.gz (可从http://so原创 2012-03-23 17:13:22 · 3047 阅读 · 0 评论 -
详解二叉查找树算法的实现
参考文献: 《数据结构(C语言版)》 严蔚敏 吴伟民 编著 开发平台:Ubuntu11.04 编译器:gcc version4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) 树(Tree)是n(n≥0)个结点的有限集。在任意一棵非空树中:(1)有且仅有一个特定的被称为根(Root)的结点;(2)当n>1时,其余结点可分为m(m>0原创 2012-04-06 13:32:06 · 71545 阅读 · 20 评论 -
Linux内核中的PID散列表实例
开发平台:基于虚拟机的Ubuntu 11.04 内核源码:linux-2.6.38.8.tar.bz2 目标平台:ARM体系结构 参考文献:《深入Linux内核架构》 关于散列表的概念可以参考博文《散列表的基本概念及其运算》。 1、PID散列表 PID散列表是在系统启动过程中通过pidhash_init函数(被start_kern原创 2012-03-27 12:25:59 · 8693 阅读 · 1 评论 -
散列表的基本概念及其运算
参考文献: 《数据结构(C语言版)》 严蔚敏 吴伟民 编著 开发平台:Ubuntu11.04 编译器:gcc version4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) 散列表(也叫哈希表)是一种查找算法,与链表、树等算法不同的是,散列表算法在查找时不需要进行一系列和关键字(关键字是数据元素中某个数据项的值,用以标识一个数据元素)原创 2012-03-26 08:56:48 · 26772 阅读 · 2 评论 -
例解单链表的基本运算(上)
本文所有代码采用C语言实现。 参考文献: 《数据结构(C语言版)》 严蔚敏 吴伟民 编著 开发平台:Ubuntu 11.04 编译器:gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) 线性结构:在数据元素的非空有限集中,有且仅有一个开始结点(没有直接前趋)和一个终止结点(没有直接后继),除开始结点和终原创 2012-02-25 17:40:32 · 2029 阅读 · 0 评论 -
详解Linux内核红黑树算法的实现
开发平台:Ubuntu11.04 内核源码:linux-2.6.38.8.tar.bz2 关于二叉查找树的概念请参考博文《详解二叉查找树算法的实现》。 平衡二叉树(BalancedBinary Tree或Height-Balanced Tree)又称AVL树。它或者是一棵空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之原创 2012-04-11 17:02:26 · 33101 阅读 · 9 评论