alop or 导演 的专栏

数学还是编程?

贪吃蛇c++实现

最近没事翻了一下以前写的程序,真是不堪入目,以前真是什么都不懂,不过有一个程序倒是挺有意思的,大二的时候写的一个贪吃蛇游戏,虽然程序非常难看,还有很多漏洞,但也是这个程序让我真正开始喜欢上了编程,不多说啦,先看看代码! #include #include #include #include ...

2014-11-08 16:02:28

阅读数 2030

评论数 6

数据结构之栈的实现

栈是一种典型的线性表,它非常的简单,实现也很简单,但他的应用却非常的广泛,如函数的递归,一些撤销功能的实现等等!   栈是只能访问头节点的线性表!无论是插入,删除还是查找都只需要访问头节点。   他的实现一般有两种,一种是用向量表的实现,这种方法的有点在于节省空间,但缺点也比较明显,就是不够自由,...

2014-04-02 21:22:09

阅读数 899

评论数 0

数据结构之不相交集类

不相交集类是解决等价关系问题的一种非常有效的手段!等价关系是一种关系R,他满足自反性,对称性与传递性。有人说散列是最艺术的数据结构,优先队列是最优雅的数据结构 而不相交集类就是最简洁的数据结构!这些说法我非常赞同,因为不相交集类的实现代码真的太简洁了。     处理等价关系最重要的问题就是要判断任...

2014-03-30 20:20:16

阅读数 2068

评论数 2

数据结构之散列

删除,插入,查找是对数据的最基本且最常用的操作,这几种操作的效率往往极大的影响着我们的程序的效率,当然,有很多数据结构都对这些操作提供了基本的支持,不过效率却大不相同,如向量表的查找效率是O(1),但插入与删除为O(n)的,链表相反,查找效率是O(n),但插入与删除为O(1)的,而二叉查找树对三种...

2014-03-29 18:18:53

阅读数 1209

评论数 2

堆放木块C++实现

堆放木块是题很有意思的题目,原题的描述为:   我们用2维数组n[i][j] 表示平面上凸起的高度。或者说在二维平面上堆放立方体,满足 (每个数组元素都是非负整数)    n[i][j]   如图所示,是一种合法的方法。 对应的二维数组是: 5 4 2 1 1 3 ...

2014-03-29 12:09:48

阅读数 2750

评论数 15

数据结构之左式堆的实现

左式堆是一种很有意思的二叉树,他与二叉堆即优先队列一样,具有堆序性质,唯一的区别在于他并非完全的平衡,而是偏左的,对任意一个节点x,左儿子的零路径长至少与右儿子的零路径长一样大,所谓的零路径长是从x到一个不具有两个儿子的节点的最短路径长:  如下: 只有左边的才是左式堆,因为左...

2014-03-28 20:50:30

阅读数 1284

评论数 2

数据结构之AVL树

AVL树是一种自平衡的二叉树,在AVL树里任何节点的两个子树的高度之差不能超过1,所以他是一种高度平衡的二叉查找树,他能保证查找,插入,删除在最坏的情况下都是 O(log(n))的,不过插入和删除都需要通过一次或多次的单旋转或双旋转来调节平衡!    以下是调节平衡的例子: 接下来是...

2014-03-27 15:38:59

阅读数 790

评论数 2

数据结构之二叉查找树的C++实现

二叉树是结构最简单的树了,而二叉查找树又是特殊的二叉树,它能实现高效的查找,删除,插入等基本操作,STL里的map与set就是用了自平衡的二叉查找树的思想实现的 不过我这里先不实现自平衡功能,但这又是很重要的,等下我会说明,现在还是先看看二叉查找树的实现:  首先是Btree头文件: ...

2014-03-26 09:53:35

阅读数 770

评论数 0

数据结构之一般树的实现

编程离不开算法,算法离不开数据结构,数据结构里最重要的非线性结构便是树了,树原本是特殊的图,但我们不在图论里讨论树,就是因为其非常特殊,所以我们  一般都是单独讨论,下面我先说一下一般树的实现:     对于一般的树,即n叉树,我们一般是用先大儿子再兄弟的表示方法把n叉树用二叉树来表示,这种树...

2014-03-25 22:52:30

阅读数 751

评论数 0

自适应肤色识别

肤色识别是数字图像的一个重要课题,现在已经有很多方法解决这个问题,其中不乏很多好的方法,但几乎都有各自的缺陷,很难达到完美,毕竟能否识别成功,识别是否精确取决于很多因素。      我做的是基于YUV空间和YQI空间的自适应光照的肤色识别,其原理非常简单,可以参考如下资料:     http://...

2014-12-14 11:04:22

阅读数 2870

评论数 0

linux网络编程实现投票功能

投票系统 1.说明: 写了一个投票系统,过程是先配置好服务器,在写一个网上投票功能,要实现网上投票功能。 其实功能实现还是很简单的,麻烦一点的在于过程比较繁杂,要做的东西还是挺多的! 2.过程: 第一步:配置httpd服务器 先配置好httpd服务器。我先下载好了和http服务器的包后...

2014-05-18 16:50:21

阅读数 1150

评论数 0

de Casteljau算法的matlab实现

一直在写c++程序,不过对于一些作图程序来说,还是MATLAB比较实在。            de Casteljau算法是作贝塞尔曲线的一种高效的算法,其思想就是对[0,1]区间中所有的t,通过n个控制顶点不断递推得到一个顶点:下面是我的代码实现: function deCastelj...

2014-05-05 15:37:55

阅读数 3561

评论数 0

简单概率DP——hdu4405

题目描述: Hzz loves aeroplane chess very much. The chess map contains N+1 grids labeled from 0 to N. Hzz starts at grid 0. For each step he throws a d...

2014-05-03 19:56:26

阅读数 994

评论数 0

最大权二分匹配

图论里有一个很经典的算法,那就是二分匹配,不过只是简单的匹配有时并不能解决我们的问题,比如匹配带权的情况,引申的一个很重要的问题就是分配问题,比如给n个人分派m个任务,每个人都有不同的成本,如何分配能使得成本最小就是这样的问题,这样的问题我们统称为二分图的最大权匹配问题. 解决这类问题的最好的方...

2014-04-26 19:39:41

阅读数 1055

评论数 1

后缀数组的应用 hdu 3518

这两天一直再看后缀数组,虽然很难,但渐渐有一点感觉了,越来越觉height数组真的非常强大,做hdu3518题基本毫不费力; 题意大致是求一个字符串中不相交的重复子串的总数,思想大致是穷尽每一个长度i(最长是字符的一半),再看每一个height数组中的值是否大于i,注意连续时表示是同一字符串,比...

2014-04-26 17:03:06

阅读数 792

评论数 0

hdu 1403 后缀数组的应用

最近开始学后缀数组,不得不说这种结构真的很强大,但也很难学,看了好久都稀里糊涂的,现在又认真的看了一遍,总算有点想法了,然后从HDU找了一道题来小试一下,没想到轻松过。 题目是求两个字符串的最长公共子串,思想是连接两个字符串,中间用一个特殊字符隔开,然后再遍历height数组,找最大值,且满足s...

2014-04-26 13:24:55

阅读数 1166

评论数 0

后缀数组

后缀数组——处理字符串的有力工具 作者:罗穗骞 2009年1月   【摘要】   后缀数组是处理字符串的有力工具。后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现,能够实现后缀树的很多功能而时间复杂度也并不逊色,而且它比后缀树所占用的内存空间小很多。可以说,在...

2014-04-26 10:57:13

阅读数 536

评论数 0

KMP算法

刚开始学KMP算法,感觉还挺简单的,唯一有点难理解的是next数组的理解,不过自己操作一遍也就明白了,写了以下代码并轻松过了HDU2203这道水题,下面是我的代码! #include #include using namespace std; #define N 100 int next[N]; ...

2014-04-22 11:20:48

阅读数 930

评论数 0

hdu 1325 Is it a tree

题目描述: A tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one or more nodes connected by directed edge...

2014-04-16 11:02:37

阅读数 1003

评论数 0

计算器C++代码实现—— 中缀表达式的计算

中缀表达式的计算                                (包含“+ - * / ^ ()”)   这次的程序目的是要将一个中缀表达式转化为后缀表达式并计算,我用两个栈来实现这个功能,一个记录操作符,一个记录操作数,并采取一边转化一边计算的方法最后得出结果。但在这之前,必...

2014-04-06 11:47:54

阅读数 4472

评论数 3

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