
数据结构
文章平均质量分 78
LinEvan
搭上80后末班车,现居于古都南京,互联网程序猿,骑行爱好者,民谣摇滚听众,偶尔读点小书
展开
-
数据结构(三)之队列ADT
队列也是表。通过数组和链表都可以实现。原创 2014-05-02 16:10:56 · 1278 阅读 · 1 评论 -
数据结构(一)之链表
链表定义比较简单,在此就不介绍了。就简单地原创 2014-05-02 15:21:29 · 1011 阅读 · 1 评论 -
数据结构(二)之栈ADT
栈是只能在一个地方进行插入和删除元素的表,这个地方称为zhn原创 2014-05-02 15:48:32 · 997 阅读 · 1 评论 -
数据结构(四)之优先队列(堆)
#include #include #define MinData -1 //标识,比任何数据都小,假设所有的数据都大于0 typedef int ElementType; typedef struct HeapStruct *PriorityQueue; PriorityQueue Initialize(int MaxElements); void Destroy(Priori原创 2014-05-07 11:29:50 · 1097 阅读 · 1 评论 -
数据结构(五)之二叉查找树
二叉查找树。假设所有的关键字是互异的。对于树的每个节点X,它的左子数中所有关键字值小于X的关键字值,而它的右子树中所有关键字值大于X的关键字值。二叉查找树的平均深度是O(log N)。原创 2014-05-08 14:45:20 · 1001 阅读 · 1 评论 -
数据结构(六)之各种排序算法总结(附源代码)
对于本文介绍的排序算法,我们假设整个排序工作能够在主存中完成,因此,元素的个数相对来说比较小(小于10的6次方)。当然,不能在主存中完成而必须在磁盘或磁带上的排序叫做外部排序,将在其它博文介绍。 一. 插入排序 ==== 1. 基本思想: 对于N个元素,插入排序由N-1趟排序组成。对于P=1趟到P=N-1趟,插入排序保证从位置0到位置P上的元素为已排序状态。插入排序利用了这样的事实原创 2014-05-13 00:43:36 · 1234 阅读 · 1 评论 -
数据结构(七)之树
二叉查找树查找插入和删除的时间复杂度都为O(log N)。但它有个弊端。如果输入的数据是排序数据,那么代价巨大,因为树将只由那么没有左(或右)儿子的节点组成。一种解决方法是找平衡条件:任何节点的深度不能过深。最老的一种平衡查找树,即AVL树。另外,较新的方法是放弃平衡条件,允许树有任何的深度,但是在每次操作之后要使用一个调整规则进行调整,使得后面的操作效率更高,这是自调整类结构,例如伸展树。原创 2014-07-30 16:46:17 · 1297 阅读 · 0 评论