数据结构
文章平均质量分 78
yzl_rex
这个作者很懒,什么都没留下…
展开
-
四则运算表达式求值(栈的应用)
1.前/中/后缀表达式的转换(首先需要明白三者之间的转换) 自然表达式转换为前/中/后缀表达式,其实是很简单的。首先将自然表达式按照优先级顺序,构造出与表达式相对应的二叉树,然后对二叉树进行前/中/后缀遍历,即得到前/中/后缀表达式。 举例说明将自然表达式转换成二叉树: a×(b+c)-d ① 根据表达式的优先级顺序,首先计算(b+c),形成原创 2012-07-14 10:22:53 · 30645 阅读 · 9 评论 -
线性表的顺序存储结构的实现
1.初始化线性表L,即进行动态存储空间分配并置L为一个空表2.清除线性表L中的所有元素,释放存储空间,使之成为一个空表3.返回线性表L当前的长度,若L为空则返回0 4.判断线性表L是否为空,若为空则返回1, 否则返回0 5.返回线性表L中第pos个元素的值,若pos超出范围,则停止程序运行6.顺序扫描(即遍历)输出线性表L中的每个元素 7.从线性表L中查找值与x相等的元素,若查找成功则原创 2012-07-19 20:07:09 · 6091 阅读 · 0 评论 -
KMP算法
//KMP算法的难度就在于next数组的求解和这个next数组与要匹配的主模式串有什么联系,搞明白了这个联系,//再理解KMP算法就没有想象中的那么难了!网上的资料也有很多关于KMP算法的剖析,总的可以归纳为一句话:构造最大后缀长度数组!//学什么都不可能一蹴而就的,需要经验的积累,时间的洗礼! #include #include using namespace std;int ne原创 2012-07-22 13:15:13 · 518 阅读 · 0 评论 -
线性表的链式存储结构的实现
#include #include #include using namespace std;typedef int ElemType;typedef struct LNode{ ElemType data; struct LNode *next;}LinkList;LinkList *p, *q, *L;//链表的初始化,创建一个带头结点的原创 2012-07-22 17:19:22 · 4147 阅读 · 0 评论 -
strcpy strlen memcpy strcat strcmp strstr strrev函数的实现代码
/* //strcpy函数的实现,注意命名要与原来的库函数有区别 #include #include #include using namespace std;char *mystrcpy(char *strDest, const char *strSrc){ if ((strDest == NULL) || (strSrc == NULL))//保证strDest和st原创 2012-07-24 10:53:01 · 1389 阅读 · 0 评论 -
erase方法的正确使用
STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。当运用到STL中的函数的时候,在使用erase方法来删除元素时,需要注意一些问题(本人还没有彻底的理解到其出现问题的原因,等我学会了其容器的储存形式之后,再回过头来解释其原因,以下的内容仅是阅读笔记)。当你想遍历删除一个容器原创 2012-08-09 10:04:08 · 3468 阅读 · 0 评论 -
哈希表的详解
哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希表的做法其实很简单,就是把Key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将va原创 2012-08-16 10:03:06 · 7864 阅读 · 0 评论 -
qsort和sort的详解和比较函数的区别
下面先对qsort和sort进行详细的解释,然后再将区别!(需要特别注意的就是qsort和sort的比较函数的写法,很容易出错)First qsort基本快速排序的方法,每次把数组分成两分和中间的一个划分值,而对于有多个重复值的数组来说,基本排序的效率较低。集成在C语言库函数里面的的qsort函数,使用三路划分的方法解决这个问题。所谓三路划分,是指把数组划分成小于划分值,等于划分原创 2012-08-16 18:17:53 · 10756 阅读 · 2 评论