自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

让阳光照进心里

学习感悟+生活随笔

  • 博客(27)
  • 资源 (2)
  • 收藏
  • 关注

原创 不相交集ADT实现文件C语言

<br />  起初选择使用ADT的操作来实现分配存储空间.后来发现.这样做,问题很多,以至于分析了一会没有分析出什么结果.索性直奔问题了,我的思想是好的,我承认.<br />  上代码.<br />/* DisjiontADT.c -- 不相交集合实现文件 */#include <stdio.h>#include <stdlib.h>#include "DisjiontADT.h"/* 接口函数定义 */void InitializeAsHeight (DisjiontSet

2010-11-30 23:29:00 1090

原创 不相交集ADT头文件C语言

  看第八章第二天,一个并不难的实现,我写到现在.呵呵.  主要说来,这个东西,就是表示出一些彼此不相交的集合,能够合并已知集合,能够确定某元素所在的集合.编程的代价较低.分析的问题比较让我头疼.  最近事情比较多,一件接着一件.虽然只有两件而已.总而言之,人要走正路.不要有杂念,有杂念是要有代价的.我所要做的,就是坚持学习计算机,早日摆脱这该死的工作.  虽然明早起来就不会这么豁达了,谁知道呢,这确实是锻炼,人不经事,不会成长.加油吧!  上代码,经过斟酌的代码呢.呵呵./* 8-3-11-29-23.5

2010-11-30 23:27:00 1056

原创 7-40-11-27-23.10.c

<br />  这个堆排序使用了新的下滤函数.对于运行时间的分析,暂时进行不了,回头计算下吧.哪怕是很粗略的依赖于时钟计时器.<br />/* 7-40-11-27-23.10.c -- 第七章第四十题 */#include <stdio.h>#define SIZE 20int main (void) ;void print_array (const int * const array, const int size) ;void swap (int * const vala, i

2010-11-28 00:20:00 736

原创 7-37-11-27-22.11.c

<br />  合并两个文本文件,这个思想很不错,我很喜欢.<br />/* 7-37-11-27-22.11.c -- 第七章第三十七题 */#include <stdio.h>int main (void) ;int main (void){ FILE * fpa, * fpb, * fpc ; char cha, chb ; fpa = fopen ("a.txt", "r") ; fpb = fopen ("b.txt", "r") ; fpc = f

2010-11-27 22:39:00 1511

原创 3排序

  这个是紧接着的下一道题.发现了,其实,随着数据种类多起来,分块也就多了,这也正是快速排序的来历吧.还有呢,就是,随着数据多起来,也就是枢纽元会重复的情况下,也就会出现array[i] == array[j] == array[pivot]的时候,那样我这段代码的主循环也就无法运行了.于是,在median3 () 函数中先要将两头排好序, 以便在主循环中安全地使用前缀自增运算符.  这本书里的练习题感觉不错,只是算法分析的题做着比较吃力,相信随着数学的学习,情况会好起来吧!  贴上代码,呵呵./* 7-3

2010-11-27 00:10:00 762

原创 2排序

  就是数组中数据要么是这个, 要么是那个.不错的思想,貌似简单,其实不学不可能会.  我觉得写游戏的时候会派上用场.例如,两个帮派群P,之后分组.你说呢?呵呵./* 7-31-11-26-22.22.c -- 第七章第三十一题 */#include #define SIZE 21#define FALSE 0#define TRUE 2int main (void) ;void print_array (const int * const array, const int

2010-11-26 22:41:00 680

原创 寻找第k小的元素C语言

  今早凌晨写出来了下,居然都来发表博客了.后来测试发现了问题,于是删了博客.决定今天下班回来重新搞.我的严谨,真的妥协不了.  问题的关键,在于我在代码中重点标记的部分.也就是,书中给的,真不知道他是怎么想的,还是我是怎么想的呢?传递来的k值是索引,所以是从0开始的,于是左面的界 ∈ [left, i), 右面的界 ∈ (i, right).中间的是i.这是一个主要的问题.  再一个,我尝试着自始自终用一个函数解决,于是遇到了一个问题.也就是,使用三数中值分割法时数组元素个数 == 2时.经过手工模拟,添

2010-11-24 21:15:00 1244

原创 快速排序C语言

  就感觉,自己对这些个排序.至少,脑袋里还没有.哎,我老是不专心呢.加油吧.  说说快速排序吧.这东西,原理就是不断地将一个数组分成3部分.保持所有数组出在这种状态,最终完成排序.  这些思想,还没有掌握.加油吧,我还能说什么?  说些这个,呵呵.  这段代码,起初不懂.后来,随着不断手工模拟,发现,采用了很多技巧.也难怪起初根本理解不了.自己试着手工按照代码上的去做,再按照自己的想法做了下,就清晰多了.确实很多技巧.  现实中,需要排序解决的问题不少.可排序算法也不多,貌似记住一些就足以满足生产活动了.

2010-11-22 02:08:00 727

原创 归并排序非递归实现C语言

  话说这个东西写到凌晨3点27分,都没有写好.刚才睡醒了写完的.主要遇到的问题就是当数组大小不是2的幂的时候发生的 right_end 越界的时候.我的逻辑起初偏于复杂,后来重新组织逻辑,当发生 right_end 越界的时候, 取 size - 1 为 right_end, 并且保持前一个数组完整, 后一个数组的大小不去顾及. 这样问题就解决了.  这貌似加深了我对归并排序的理解./* 7-14-11-21-00.21.c -- 第七章第十四题 */#include #include #in

2010-11-21 13:33:00 1630

原创 归并排序递归实现C语言

<br />/* 7-13-11-20-22.33.c -- 第七章第十三题 */#include <stdio.h>#include <stdlib.h>#define SIZE 8int main (void) ;void print_array (const int * const array, const int size) ;void merge_sort (int * const array, const int size) ;void merge_sort_

2010-11-20 23:11:00 1128

原创 堆排序C语言

/* 7-11-11-19-22.12.c -- 第七章第十一题 */#include #include #define LEFTCHILD(position) ((position) * 2 + 1) /* Notice the space */#define SIZE 12int main (void) ;void print_array (const int * const array, const int size) ;void heap_sort (int

2010-11-20 00:22:00 1058

原创 希尔排序C语言

/* 7-4-11-19-19.58.c -- 第七章第四题 */#include #include #define SIZE 9int main (void) ;void print_array (const int * array, const int size) ;void shell_sort (int * array, const int size) ;int main (void){ int array[SIZE] = {9, 8, 7, 6, 5

2010-11-19 20:31:00 643

原创 插入排序C语言

  终于开始接触排序了.实现可以理解,复杂度的分析对我来说很难./* 7-1-11-19-00.01.c -- 第七章第一题 */#include #include #define SIZE 9typedef int Item ;int main (void) ;void insert_sort (Item * array, const int size) ;void print_array (const Item * const array, const int s

2010-11-19 00:20:00 642

原创 盒子树实现文件C语言

/* box.c -- 盒子问题实现文件 */#ifndef GENERIC#include "box.h"#endif/* 局部函数声明 */static Box * Make_Box (const Weight capacity) ;static Box * Find_Max (Box * box) ;static Box * Find_Min (Box * box) ;static int Insert_ (BoxTree * const pbt, const

2010-11-17 00:53:00 858

原创 盒子树头文件C语言

  两天时间,白天看虚拟存储器,晚上到家写这个东西,刚刚写完.缺点不少,功能实现是必须的.  这个东西,是根据习题的要求写的,关于盒子问题,所以我给它取了个名字--盒子树.呵呵.  在写代码的过程中,我希望写完之后大肆庆祝下,.可写完之后,又觉得没什么...呵呵  对于这个东西,我解释下我的分析.  总体要求,就是要求有序.于是我选择了二叉搜索树,考虑过AVL树,后来觉得新东西,还是先简单地实现下.  之后,根据编写过程中的实际情况,一点一点写.做了许多模拟,这次伪代码先出来的.虽然后来被我模块化了.  很

2010-11-17 00:52:00 955

原创 二项队列实现文件C语言

/* binomial-queue.h -- 二项队列头文件 *//* 头文件加载放在头文件是个好主意 */#include #include #define INFINITY 32767/* 数据类型定义 */typedef int Item ; // 为什么我如此喜欢 int ^ ^typedef struct node{ Item item ; struct node * left ; // 左子树 struct node * nextsibli

2010-11-15 02:54:00 1380

原创 二项队列头文件C语言

/* binomial-queue.c -- 二项队列实现文件 */#include "binomial-queue.h"/* 局部函数声明 */static SubTree Combine_Trees (SubTree t1, SubTree t2) ;static Node * Make_Node (const Item item) ;static void Recursively (const SubTree t, void (* pfun) (const Item it

2010-11-15 02:54:00 1188 4

原创 斜堆实现文件C语言

  这个斜堆没有XX检测.也正因为我不明白书上说的是什么意思,才没有写出来.不过,那似乎是个理论上100%可以避免的检测.或者,至少来说,一些事实验证了代码的正确性. 希望高手指正!/* skew-heap.c -- 斜堆实现文件 */#include #include #include "skew-heap.h"/* 局部ADT声明 *//* Item1定义为指针类型在释放原空间后会造成非法的存储器引用 *//* 得到的经验教训是: 指针还是要慎用.没有理由的时候不要滥用

2010-11-12 23:52:00 965 2

原创 斜堆头文件C语言

  虽然今天距昨天只有一天, 我还是成长了好多.对于昨天不懂的问题,今天搞清楚了大半.总体来说,总结起来,...都写到代码里了.还要去看数学,就不多写了.呵呵.总之,明天会更好./* skew-heap.h -- 斜堆头文件 */#define INSERT(heap, item) (heap = Insert (heap, item))#define DELETEMIN(heap, pnode) (heap = DeleteMin (heap, pnode))#define BUILD(hea

2010-11-12 23:50:00 870

原创 左式堆(不完全操作)实现文件C语言

/* lefttist_heap.c -- 左式堆实现文件 */#include #include #include "lefttist_heap.h"/* 局部ADT定义 */typedef Node Item2 ;typedef struct node2{ Item2 item2 ; struct node2 * next ;} Node2 ;typedef struct queue{ Node2 * front ; Node2 * rea

2010-11-11 21:45:00 917

原创 左式堆(不完全操作)头文件C语言

  一晃又好几天没有更新博客,很是郁闷啊.这个左式堆,不想继续写下去了,写得很吃力,于是先告一段落吧.毕竟学习数据结构不是一朝一夕的事情.今后会回头来看的.贴代码./* lefttist_heap.h -- 左式堆头文件 */#define INSERT(h, x) h = Insert (h, x) /* 宏和参数之间不能有空格 */#define DELETEMIN(h) (h = DeleteMin (h))/* 数据类型定义 */typedef int Item ;t

2010-11-11 21:26:00 1067

原创 d-堆实现文件C语言

/* d-heap.c -- d-堆实现文件 */#include #include #include "d-heap.h"/* 局部函数声明 */static int Percolate_Up (const Heap * const pheap, const Item item, const int position) ;static int Percolate_Down (const Heap * const pheap, const Item item, const i

2010-11-07 18:58:00 861 2

原创 d-堆头文件C语言

  半天时间,写了个d-堆的实现.还不错.加深了对优先队列的理解.贴代码./* d-heap.h -- d-堆头文件 */#define MINDATA -32678/* 数据类型定义 */typedef int Item ;typedef struct heap{ Item * array ; int capacity ; int size ; int d ;} * Heap ;/* 接口函数声明 *//* 操作: 创建并初始化一个d-堆 *

2010-11-07 18:57:00 1057

原创 二叉堆--二叉堆实现文件C语言

/* binary_heap.c -- 二叉堆实现文件 */#include #include #include "binary_heap.h"/* 局部函数声明 *//* 返回 item 在 position 位置处上滤后应该出现堆中的位置索引 */static int Percolate_Up (const Heap * const pheap, const Item item, const int position) ;/* 返回 item 在 position 位

2010-11-05 19:11:00 1171

原创 二叉堆--二叉堆头文件C语言

/* binary_heap.h -- 二叉堆头文件 */#define MINDATA -32768/* 数据类型定义 */typedef int Item ;typedef struct heap{ Item * array ; int capacity ; /* 容量 */ int size ; /* 当前数据数量 */} * Heap ;/* 接口函数声明 *//* 操作: 创建并初始化一个二叉堆 *//* 操作前: phea

2010-11-05 18:49:00 1357

原创 可扩散列--可扩散列实现文件C语言

/* extendible_hashing.c -- 可扩散列实现文件 */#include #include #include "extendible_hashing.h"/* 局部函数声明 */static char pow_base_two (const int power) ;/* 接口函数定义 */int Hash (const Item * const pitem, const char constant){ return *pitem >>

2010-11-02 21:07:00 1526

原创 可扩散列--可扩散列头文件C语言

  我真够郁闷,这么久没有更新博客.罪过,罪过...  写这个可扩散列,我写出来的这个完全是个模型,限制较多,局限性也很强,大概32:1.呵呵.不过,尽管如此,拿来练手或者之前没有写过这个东西的朋友看到的话,还是很有帮助的.  大概介绍下吧,不详谈了.本来想吹一顿的,无奈写到现在,感觉很垃圾.于是不好意思大吹特吹了.  数据类型,无符号8位整数.对255以上的数据无效,想弄成负数要做的改动并不多.无奈不想再多耽搁了.  支持,初始化,插入,查找,删除,遍历,清空.还算齐全的功能.  介绍到这里吧,主要是啊,

2010-11-02 21:06:00 1792

For save__个人使用

AVL树. 刘洋拿来给我看的,我今天没有时间看了.先保存一下.回头来看.

2011-06-30

<<数据结构与算法分析-C语言描述>>编程练习

<<数据结构与算法分析-C语言描述>>编程练习. 课后习题的C语言实现.

2011-04-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除