数据结构
文章平均质量分 80
堂吉诃德Time
这个作者很懒,什么都没留下…
展开
-
单链队列的一个C代码实例
单链队列使用链表作为基本数据结果,所以不存在伪溢出的问题,队列长度也没有限制。但插入和读取的时间代价较高转载 2014-10-20 13:38:01 · 624 阅读 · 0 评论 -
链表C宏实例 摘自 linux 内核
以下代码摘自Linux内核2.6.21.5源码(部分),展示了链表的另一种实现思路,未采用ANSI C标准,采用GNU C标准,遵从GPL版权许可。struct list_head { struct list_head *next, *prev;}; #define LIST_HEAD_INIT(name) { &(name), &(name) } #de转载 2014-10-15 22:30:08 · 575 阅读 · 0 评论 -
链表的一个C代码实例
范例代码是一个ADT(抽象数据类型)双向环形链表的基本操作部分的实例(未包含线程安全机制),全部遵从ANSI C标准,由User:JohnBull贡献,代码遵从GPL版权许可。接口声明#ifndef LLIST_H#define LLIST_H typedef void node_proc_fun_t(void*);typedef int node_comp_fun_t(c转载 2014-10-15 22:27:05 · 555 阅读 · 0 评论 -
基于树的查找--------------二叉查找树
1,为什么要分析二叉查找树(又名:二叉排序树)? 正真分析开源代码或软件开发中,基于树的查找是难免会有的,现在多用的是红黑树,而红黑树是基于平衡树的,而平衡树是基于查找树的,而查找树是基于二叉树的,二叉树大家都很熟悉,所以先从查找树开始分析。这样才便于分析平衡树,最终的分析对象将会是红黑树。----------------------------------转载 2014-11-01 17:07:10 · 638 阅读 · 0 评论 -
递归算法详细分析 C语言
C通过运行时堆栈支持递归函数的实现。递归函数就是直接或间接调用自身的函数。 许多教科书都把计算机阶乘和菲波那契数列用来说明递归,非常不幸我们可爱的著名的老潭老师的《C语言程序设计》一书中就是从阶乘的计算开始的函数递归。导致读过这本经书的同学们,看到阶乘计算第一个想法就是递归。但是在阶乘的计算里,递归并没有提供任何优越之处。在菲波那契数列中,它的效率更是低的非常恐怖。 这里有转载 2014-10-30 11:43:58 · 609 阅读 · 0 评论 -
汉诺塔问题递归算法分析
一个庙里有三个柱子,第一个有64个盘子,从上往下盘子越来越大。要求庙里的老和尚把这64个盘子全部移动到第三个柱子上。移动的时候始终只能小盘子压着大盘子。而且每次只能移动一个。 1、此时老和尚(后面我们叫他第一个和尚)觉得很难,所以他想:要是有一个人能把前63个盘子先移动到第二个柱子上,我再把最后一个盘子直接移动到第三个柱子,再让那个人把刚才的前63个盘子从第二个柱子上移动到第三个柱子上,我的转载 2014-10-30 17:24:12 · 577 阅读 · 0 评论 -
二叉树 C 实例代码
在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有个结点;深度为k的二叉树至多有个结点;对任何一棵二叉树T,如果其终端结点数为,度为2的转载 2014-10-28 15:42:53 · 1072 阅读 · 0 评论 -
平衡树的调整 案例与代码
一,分析平衡二叉查找树有什么意义? 平衡二叉查找树是对二叉查找树的改进,那二叉查找树哪些地方是不尽人意的呢?在分析二叉查找树的平均查找长度时,会发现,二叉查找树的平均查找长度与二叉查找树的形态有关系,最坏的情况是退化为链表,查找变为线性查找,平均查找长度为(n 1)/2.最好的情况就是树的形态与折半查找的判断树形式。平均查找长度为logN。平衡二叉树就是为了保证转载 2014-10-28 16:56:11 · 910 阅读 · 0 评论 -
树的C代码实例
术语转载 2014-10-20 17:17:32 · 1335 阅读 · 1 评论