数据结构
C语言迷宫 源代码
十二 30th
关键部分在于迷宫的寻路部分,我灵感大爆发……用递归的思想,4行代码就搞定啦。
看起来就像是用洪水去冲那个通道,如果冲到了终点,说明这个通道是通的……
但是实现最优解就有点麻烦了,我嘛,就不做啦。
另外比较复杂的就是自动生成迷宫了,不过我又偷懒了,我没有用DFS那些什么算法来实现。
我是纯粹的随机的,只不过加了几个限制。
1、如果有解,停止生成
2、时间限制
3、在时间限制的基础上保证迷宫有一定的长度
代码清单:
更多 >
C语言迷宫程序
十二 11th
这个是数据结构的程序设计,我乱写的……也没按什么要求,管它的,至少还能运行起来。
程序呢,有很多个功能,我是负责界面的,嘿嘿。
数据结构这门课终于也完了。
唉,不知道考试怎么样呢?
那些经典代码全是抄的书上的,呜呜……
自己不看书写的时候就麻烦了。
更多 >
数据结构:内部排序
十二 1st
数据结构:二分查找与Hash查找实验
十二 1st
1.二分查找又称为折半查找,它要求要查找的顺序表必须是有序表,即表中结点按关键
字有序,并且要用顺序存储结构。
基本思想是:首先将给定值key与表中中间位置记录的关键字相比较,若二者相等,则
查找成功,否则根据比较的结果确定下次查找的范围是在中间记录的前半部分还是后半部
分,然后在新的查找范围内进行同样的查找,如此重复下去,直到在表中找到关键字与给定
值相等的记录,或者确定表中没有这样的记录。
编写程序构造一个有序表La,从键盘接收一个关键字key,用二分查找法在La 中查找
key,若找到则提示查找成功并输出key所在的位置,否则提示没有找到信息。
2.编写程序实现Hash表的建立、删除、插入以及查找操作。
程序应包含的主要功能函数有:
Hash():计算哈希地址
InitialHash():初始化哈希表
SearchHash():在哈希表中查找关键字
InsertHash():向哈希表中插入关键字
DeleteHash():删除哈希表中某一关键字
PrintHash():打印输出哈希表
更多 >
高速字符串匹配 zzl算法
十一 29th
这个大概我这段时间稍微有点成就感的东西了。
学了数据结构,但是编写代码的时候还是照着书抄,没有一点意思……
字符串匹配在补丁的时候是非常有用的。
之前我用的普通方法查找,就是一个一个的往前。搜索一个300kb的文件大概需要4秒时间。
看了ZZL算法原理以后,自己就编写了出来。查找这个相同的文件,需时约0.4秒。
大家能够感觉到差距吧?整整10倍啊!
算法思想大意是每次能够尽量多的移动匹配位置,因此建立一个开始匹配的索引。
更多 >
数据结构:二叉树
十一 8th
1.编写程序任意输入二叉树的结点个数和结点值,构造一棵二叉树,采用三种递归遍
历算法(前序、中序、后序)对这棵二叉树进行遍历并计算出二叉树的高度。
2.编写程序生成下面所示的二叉树,并采用中序遍历的非递归算法对此二叉树进行遍
历

注意输入方式,比如这个应该输入:12##346###5##
更多 >
数据结构:队列-约瑟夫环
十 25th
约瑟夫环的实现:设有n个人围坐在圆桌周围,现从某个位置 i 上的人开始报数,
数到 m 的人就站出来。下一个人,即原来的第m+1个位置上的人,又从1开始报数,再
是数到m的人站出来。依次重复下去,直到全部的人都站出来,按出列的先后又可得到一个
新的序列。由于该问题是由古罗马著名的史学家Josephus提出的问题演变而来,所以通常
称为Josephus 问题。
例如:当n=8,m=4,i=1时,得到的新序列为:
4,8,5,2,1,3,7,6
编写程序选择循环队列作为存储结构模拟整个过程,并依次输出出列的各人的编号。
