数据结构
悦来客栈的老板
这个作者很懒,什么都没留下…
展开
-
二叉树的递归与非递归遍历(二叉链表结构)
# include # include # include # include # define STACK_INIT_SIZE 100 # define STACKINCREMENT 10 # define OK 1 # d原创 2011-09-07 23:00:08 · 1387 阅读 · 2 评论 -
简单选择排序
一趟简单选择排序的操作:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1 # include # define MAXSIZE 20 typedef int KeyType; typedef struct { Ke原创 2011-09-29 21:03:56 · 996 阅读 · 0 评论 -
希尔排序
基本思想:先将整个待排序记录序列分割成为若干个序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序! 因为关键字是跳跃式的往前移动,因为它是不稳定的。 # include # define MAXSIZE 20 typedef原创 2011-09-29 20:01:05 · 975 阅读 · 0 评论 -
直接插入排序
从今天起,开始写排序程序,所有思想均来自 严蔚敏老师的数据结构第三版 直接插入排序是一种最简单的排序方法,其思想是:先将序列中的第1个记录看成是一个有序的子序列,然后从第2个记录起逐个进行插入(从待插入的记录起向左查找插入的位置),直至整个序列变成按关键字非递减有序原创 2011-09-26 22:42:19 · 1147 阅读 · 0 评论 -
直接插入排序:改进算法---2路插入排序
具体做法:另设一个和L.r同类型的数组d,首先将L.r[1]赋值给d[1],并将的d[1]看成是在排好序的序列中处于中间位置的记录,然后从L.r中第2个记录起依次插入到d[1]之前或之后的有序序列中。 # include # include # define原创 2011-09-27 20:46:28 · 1058 阅读 · 0 评论 -
直接插入排序:改进算法---折半插入排序
这种改进是从比较次数入手的,并没用减少移动的次数 # include # define MAXSIZE 20 typedef int KeyType; typedef struct { KeyType r[MAXSIZE+1]; int原创 2011-09-27 20:24:54 · 1008 阅读 · 0 评论 -
顺序表的一些基本操作
# include # include # include # define LIST_INIT_SIZE 1000 # define LISTINCREMENT 10 # define OK 1 # define ERROR原创 2011-09-25 11:11:39 · 1183 阅读 · 0 评论 -
多项式的加减乘
这是我学数据结构写的第一个比较"大型"的程序,唉,还是有不足之处啊。。。 # include # include # include # include # define OK 1 # define ERROR原创 2011-09-25 10:56:01 · 1267 阅读 · 0 评论 -
每日一算法,递推:汉诺塔问题
汉诺塔问题来自一个古老的传说:在世界刚被创建的时候有一座钻石宝塔(塔A),其上有64个金碟。所有碟子按从大到小的次序从塔底堆放至塔顶。紧挨着这座塔有另外两个钻石宝塔(塔B和塔C)。从世界创始之日起,婆罗门的牧师们就一直在试图把塔A上的碟子移动到塔C上去,其间借助于塔B的帮助。每次原创 2011-09-23 21:59:47 · 2662 阅读 · 0 评论 -
二叉树的非递归中序遍历(二叉线索存储结构)
# include # include # include # include # define OK 1 # define ERROR 0 # define OVERFLOW -1 typedef char TElemType; typ原创 2011-09-13 20:31:41 · 1126 阅读 · 0 评论 -
起泡排序
两种方法:小关键字往上泡,大关键字往下沉 这个是关键字小的往上冒泡 # include # define MAXSIZE 20 typedef int KeyType; typedef struct { KeyType r[MAXSIZE+1];原创 2011-09-29 20:47:47 · 1089 阅读 · 0 评论