- 博客(21)
- 资源 (2)
- 收藏
- 关注
原创 k-d树头文件C语言
<br /> 有了2-d树,k-d树很自然就出炉了,呵呵.不难的东西,很喜欢这东西.<br /> 而且,发现了2-d树的Bug,当然也就没有影响到这课k-d树.<br /> 呼呼...贴!<br />/* k-dTree.h -- k-d树头文件 */#include <stdio.h>#include <stdlib.h>/* 宏定义 */#define ADD_INDEX(k, index) (k == index + 1 ? 0 : index + 1)#define
2011-03-31 17:55:00 1431
原创 k-d树实现文件C语言
<br />/* k-dTree.c -- k-d树实现文件 */#include "k-dTree.h"/* 局部函数声明 *//* 队列部分 */static QueueNode * makeNode_Q (Node * const pn, const int index) ;/* k-d树部分 */static Node * makeNode_K (const Item * const pi, const int k) ;static BOOL within_K
2011-03-31 17:55:00 1264
原创 2-d树实现文件C语言
/* 2dTree.c -- 2-d树实现文件 */#include "2dTree.h"/* 局部函数声明 *//* 队列部分 */static QueueNode * makeNode_Q (Node * const pn, const int index) ;/* 2-d树部分 */static Node * makeNode_T (const Item * const pi) ;static void release_T (Node * const pn) ;
2011-03-30 15:28:00 1267
原创 2-d树头文件C语言
<br /> 2-d树,昨天写的.今天本想来好好玩会球,不想玩了一小会就散伙了.于是来上会网.<br /> 这个东西,支持二维的范围查找,十分有用.关于优化的部分,我并不承认.我觉得我所知的那种优化方式开销太大,而且实现十分困难,于是没有去实现.写的这套ADT很不错,关于范围查找非递归的实现,我想到了层序遍历,这真是一个好主意,我都为自己高兴,觉得自己的想法很到位.事实证明,问题也确实依次解决的,很不错,很不错.呵呵.<br /> 如果自顶向下进行判断,左右子树都要判断,并且左右子树很有可能同时满足条
2011-03-30 15:27:00 1304
原创 Treap树非递归插入
<br /> 用显示的栈实现插入,完成非递归的插入.<br /> 这网吧的破显示器太烂了....自己小调了下,呵呵.<br /> 栈好久不写了,冷不丁一写,还真是遇到了问题.不过还好,现在搞清楚了.<br /> 好了,贴吧.<br />/* 12-17-11-03-28-18.49.c -- 第十二章第十七题 */#include <stdio.h>#include <stdlib.h>#include "treapTree.h"TreapTree Insert_T (Treap
2011-03-28 20:34:00 1079
原创 Treap树实现文件C语言
<br /> 对于这个,想说的是.关于 NullNode 结点.在调用Release ()释放内存之后,要将其恢复为NULL,以便下次的连续使用.自己想到的,很不错.<br />/* treap.c -- treap树实现文件 */#include "treapTree.h"/* 全局变量声明定义 */static Node * NullNode = NULL ;/* 局部函数声明 */static Node * singleRotateWithLeft (Node * const pn
2011-03-26 21:59:00 1545 2
原创 Treap树头文件C语言
<br /> 这东西,有随机化算法的影子.使得每个结点以 priority 值保持堆序,继而实现对树高度的控制.想法很好,实现起来也很简单.<br />/* treapTree.h -- treap树头文件 */#include <stdio.h>#include <stdlib.h>#include <time.h>#define INFINITY (~(1 << 31))typedef int Item ;typedef struct node{ Item item ;
2011-03-26 21:57:00 1126
原创 AA树实现文件C语言
/* AATree.c -- AA树实现文件 */#include "AATree.h"/* 全局变量声明 */static Node * NullNode = NULL ;/* 局部函数声明 */static Node * singleRotateWithLeft (Node * const pn) ;static Node * singleRotateWithRight (Node * const pn) ;static Node * skew (Node *
2011-03-24 15:54:00 1089
原创 AA树头文件C语言
<br /> 并未深入研究这个,只是对已有代码进行了理解与扩充.我已经成了奴隶,时间长没有代码出现,就会郁闷得要命.出了这个,能缓解下.给自己的压力太大了.<br />/* AATree.h -- AA树头文件 */#include <stdio.h>#include <stdlib.h>/* 明显常量定义 */#define FALSE (0)#define TRUE (1)/* 数据类型定义 */typedef int BOOL ;typedef i
2011-03-24 15:52:00 1456
原创 计数排序C语言
计数排序,白天手机看维基百科看到的.对付数据跨度小的 int 型数据,的确很快.代码,很直观./* count_sort-11-03-21-19.01.c -- 计数排序 */#include #include #define SIZE (10)int main (void) ;int countSort (int * const array, const int size) ;void printResult (const int * const array, const
2011-03-21 20:18:00 1673
原创 伸展树查找第K个最大/最小元C语言
<br /> 书上的一道习题,本以为很简单,却一不小心搞了5个小时.还好,搞出来了.<br /> 不多说了,贴代码,很清楚的代码.<br />Node * FindKthMin_S (const SplayTree * const pst, int k){ Node * scan ; if (k > (*pst) -> current || k <= 0) return NULL ; scan = (*pst) -> root ; while (1) { if
2011-03-19 22:36:00 1186 2
原创 心事
26368 36817 44 25105 34920 31034 21387 21147 24456 22823 46 13 10 20303 30340 22320 26041 44 24456 20919 46 27599 22825 44 30561 24471 24456 23569 46 32780 19988 44 24120 26377 21387 21147 46 13 10 26
2011-03-14 23:18:00 796
原创 红黑树实现文件C语言
<br /> 这个东西,保证了树的深度很低,而且旋转的次数很少.较同类的AVL树有了很大的提高.但是实现起来,并不简单.<br /> 好吧,继续我的习惯,代码说明问题.<br />/* RedBlackTree.c -- 红黑树实现文件 */#include "RedBlackTree.h"/* 全局变量引用 */extern Node * NullNode ;extern Node * Current, * Sibling, * Parent, * GrParent, * Gr
2011-03-14 22:09:00 1368 6
原创 红黑树头文件C语言
<br /> 红黑树,记得刚买那本书的时候我就发现有这个东西,觉得很神秘,终于接触到了,并且,我已经写出来了.很高兴.<br /> 插入的例程是书上自带的,我给代码实现了.细节部分,我并不是很清楚.删除例程,是自己写的,全下来写了大概15小时,很辛苦.昨天晚上到家就开始写,今天到家也是立刻就开始写,写完了.<br /> 我想说的是,关于删除例程, 算法部分的自己构建我很满意,旋转部分的细节实现以及细节,也是自己发现并总结的,而且是对的.很辛苦的过程啊,坚持过来了,哈哈.<br /> 并没有模块化删除
2011-03-14 22:07:00 1556
原创 自顶向下伸展树实现文件C语言
/* SplayTree.c -- 自顶向下伸展树实现文件 */#include "SplayTree.h"/* 外部变量引用 */extern Node * NullNode ;/* 局部函数声明 */static Node * singleRotateWithLeft (Node * const position) ;static Node * singleRotateWithRight (Node * const position) ;static Node
2011-03-08 21:46:00 1828 3
原创 自顶向下伸展树头文件C语言
一晃又是好几天.总算今天是有代码出现了. 自顶向下伸展树,比去年写的那个伸展树轻松多了. 人家总结出来的东西,我看懂了,完全让我自己写的话,很难啊. 这段代码,有些技巧.说的就是"NullNode"到底是怎么回事,具体的自己看代码吧.而且,发现自己的C语言功底还不够,自己补了下,而且接下来会有意识地学一学了. 不多说了.还有,下周去报名,程序员考试.我干劲./* SplayTree.h -- 自顶向下伸展树头文件 *//* 酒后写的头文件哦. */#include #include
2011-03-08 21:45:00 1475
原创 双向循环链表头文件C语言
<br /> 这个东西,是在写斐波那契堆的时候发现的.觉得这东西很好,很好用,很方便.呵呵.所以啊,昨天给实现了,凑代码吗?不高级,实现的细节问题也不多.<br /> 呵呵,不多说了,贴出来吧.明天会休息呢,所以来调兵了,玩了会球,感觉不错呢.<br />/* DoubleCircularLinkedList .h -- 双向循环链表头文件 */#include <stdio.h>#include <stdlib.h>/* 明显常量定义 */#define FALSE (0)
2011-03-04 22:00:00 2020
原创 双向循环链表实现文件C语言
<br />/* DoubleCircularLinkedList.c -- 双向循环链表实现文件 */#include "DoubleCircularDoubleCircularLinkedList.h"/* 局部函数声明 */static Node * makeNode (const Item * const pi) ;/* 接口函数定义 */BOOL Create_B (DoubleCircularLinkedList * const pl){ *pl =
2011-03-04 22:00:00 1161
原创 斐波那契堆实现文件C语言
<br />/* FibonacciHeap.c -- 斐波那契堆实现文件 */#include "FibonacciHeap.h"/* 局部函数声明 */static Node * makeNode (const Item * const pi) ;static int logBaseOnTwo (const int current) ;static void link (Node * list, Node * const new_node) ;static void cu
2011-03-02 00:00:00 3126 4
原创 斐波那契堆头文件C语言
呼...今天在家蹲了一天,除了中午出去去单位办房子的手续.虽然没有办成,少了一些必要的条件. 其余的,最近比较累,越发得累...我想,贵在坚持吧.还能怎么样呢.只能这样了.呵呵.听起来像是很悲观,其实,还是很乐观的. 好久没有代码出来了,真够郁闷的啊!确实!郁闷得够呛啊!简直,都因为这个有些烦躁了... 还好吧...今天辛苦了一天,屁股坐得直疼,还好写出来了.一点小欣慰. 连纸上研究,再代码实现...加起来大概用了20小时.只比这个时间多,不比这个时间少了啊. 写这个东西,居然对指针加深了了解
2011-03-01 23:59:00 1548 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人