- 博客(8)
- 资源 (2)
- 收藏
- 关注
原创 数据结构之栈的实现
栈是一种典型的线性表,它非常的简单,实现也很简单,但他的应用却非常的广泛,如函数的递归,一些撤销功能的实现等等! 栈是只能访问头节点的线性表!无论是插入,删除还是查找都只需要访问头节点。 他的实现一般有两种,一种是用向量表的实现,这种方法的有点在于节省空间,但缺点也比较明显,就是不够自由,容易出现栈溢出,当然我们可以通过另外申请空间来解决这个问题,但这样显得比较麻烦!还有一种方法是利用
2014-04-02 21:22:09 1066
原创 最大权二分匹配
图论里有一个很经典的算法,那就是二分匹配,不过只是简单的匹配有时并不能解决我们的问题,比如匹配带权的情况,引申的一个很重要的问题就是分配问题,比如给n个人分派m个任务,每个人都有不同的成本,如何分配能使得成本最小就是这样的问题,这样的问题我们统称为二分图的最大权匹配问题.解决这类问题的最好的方法应该就是KM 算法,具体细节可以自己百度!下面是我的代码,我主要还是用了类来写,觉得这样比较好理
2014-04-26 19:39:41 1218 1
原创 后缀数组的应用 hdu 3518
这两天一直再看后缀数组,虽然很难,但渐渐有一点感觉了,越来越觉height数组真的非常强大,做hdu3518题基本毫不费力;题意大致是求一个字符串中不相交的重复子串的总数,思想大致是穷尽每一个长度i(最长是字符的一半),再看每一个height数组中的值是否大于i,注意连续时表示是同一字符串,比如,aaaa,当i为1时,就有height[2]=1;height[3]=2;表示a,aa,这里是重复
2014-04-26 17:03:06 982
原创 hdu 1403 后缀数组的应用
最近开始学后缀数组,不得不说这种结构真的很强大,但也很难学,看了好久都稀里糊涂的,现在又认真的看了一遍,总算有点想法了,然后从HDU找了一道题来小试一下,没想到轻松过。题目是求两个字符串的最长公共子串,思想是连接两个字符串,中间用一个特殊字符隔开,然后再遍历height数组,找最大值,且满足s[i]与s[i-1]属于不同的字符串下面便是我的代码:/***************
2014-04-26 13:24:55 1346
转载 后缀数组
后缀数组——处理字符串的有力工具作者:罗穗骞2009年1月 【摘要】 后缀数组是处理字符串的有力工具。后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现,能够实现后缀树的很多功能而时间复杂度也并不逊色,而且它比后缀树所占用的内存空间小很多。可以说,在信息学竞赛中后缀数组比后缀树要更为实用。本文分两部分。第一部分介绍两种构造后缀数组的方法,重点介绍如何
2014-04-26 10:57:13 666
原创 KMP算法
刚开始学KMP算法,感觉还挺简单的,唯一有点难理解的是next数组的理解,不过自己操作一遍也就明白了,写了以下代码并轻松过了HDU2203这道水题,下面是我的代码!#include#includeusing namespace std;#define N 100int next[N];string str_s,str_m;void GetNextEx(){int k=-1,j=
2014-04-22 11:20:48 1051
原创 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 edges between nodes satisfying the following properties
2014-04-16 11:02:37 1147
原创 计算器C++代码实现—— 中缀表达式的计算
中缀表达式的计算 (包含“+ - * / ^ ()”) 这次的程序目的是要将一个中缀表达式转化为后缀表达式并计算,我用两个栈来实现这个功能,一个记录操作符,一个记录操作数,并采取一边转化一边计算的方法最后得出结果。但在这之前,必须先解决以下几个问题。 (1)当遇见“+ - * / ^”操作符时,压人栈之前,什么情况
2014-04-06 11:47:54 6829 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人