
数据结构
JDOUN
Action speak louder than words.
展开
-
线性表的顺序存储——顺序表
线性表,简称表,是n(n>=0)个具有相同类型的数据元素的有限序列。1)线性表是一个相当灵活的数据结构,对线性表的数据元素不仅可以进行存取访问,还可以进行插入和删除等操作。2)a1称为第1个元素,an称为最后一个元素,任意一对相邻的数据元素a(i-1)和a(i) (1序偶关系,且a(i-1)称为a(i)的前驱,a(i)称为a(i-1)的 后继。在这个序列中,元素a1无前驱,元素原创 2016-05-14 13:20:56 · 1074 阅读 · 0 评论 -
线性表的链接存储——单链表
单链表是用一组任意的存储单元存放线性表的元素。1.为了能正确表示元素之间的逻辑关系,没个存储单元在存储数据元素的同时,还必须存储其后继元素所在的地址信息,这个地址信息称为指针,这两部分组成了数据元素的存储映像,称为结点。2.单链表中每个结点的存储地址存放在其前驱结点的next域中,而第一个元素无前驱,所以设头指针(head pointer)指向第一个元素所在结点(称为开始结点),整个单链表原创 2016-05-14 13:31:40 · 1961 阅读 · 0 评论 -
线性表的链接存储——循环双链表
在单链表的每个结点中再设置一个指向其前驱结点的指针域,这样就形成了双链表,再将头结点和尾结点连接起来也就能构成循环双链表。1.无论是插入还是删除操作,对链表中开始结点、终端节点和中间任意结点的操作过程相同。2.设指针p指向循环双链表中的某一结点,则循环双链表具有如下对称性:(p->prior)->next=p=(p->next)->prior代码:#includeusi原创 2016-05-14 14:21:23 · 665 阅读 · 0 评论 -
栈的顺序存储——顺序栈
栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。1.向一个栈插入新元素又称为进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之称为新的栈顶元素。2.从一个栈删除元素又称为出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。代码:#includeusing nam原创 2016-05-16 19:09:08 · 1302 阅读 · 0 评论 -
栈的顺序存储——共享栈
代码:#includeusing namespace std;const int MaxSize=100;class BothStack{private: int data[MaxSize]; int top1,top2;public: BothStack(){top1=-1;top2=MaxSize;} BothStack(int a[],i原创 2016-05-16 19:15:01 · 1719 阅读 · 0 评论 -
栈的链接存储——链栈
通常链栈用单链表表示,因此其结点结构与单链表的结点结构相同。因为只能在栈顶执行插入和删除操作,显然以单链表的头部做栈底是最方面的,而且没有必要像单链表那样为了运算方便附加一个头结点。代码:#includeusing namespace std;#define null 0struct Node{ int data; Node *next;};原创 2016-05-16 23:46:28 · 1013 阅读 · 0 评论 -
队列的顺序存储——循环队列
队列是只允许在一端进行插入操作,在另一端进行删除操作的线性表。1.允许插入(也称入队、进队)的一端称为队尾,允许删除(也称出队)的一端称为队头。队列的这种首尾相接的顺序存储称为循环队列。1.为了实现元素出队之后,不移动其他的数据元素,并且可以循环利用空闲下来的数组空间。2.队空的条件:start==rear。3.队满的条件:(rear+1)%QueueSize==start。原创 2016-05-16 23:55:54 · 1335 阅读 · 0 评论 -
模式匹配算法(BF)
BF(Brute Force)算法是普通的模式匹配算法。1.其思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,一次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。2.最好情况:O(m+n);最坏情况:O(m*n),其中m,n代表字符串S和T的长度。代码:原创 2016-05-19 20:13:33 · 1102 阅读 · 0 评论 -
KMP算法
KMP算法是一种改进的字符串匹配的算法。1.关键是利用匹配失败后的信息,尽量减少模式串和朱穿的匹配次数以达到快速匹配的目的。具体实现就是实现一个next[]函数,函数本身包含了模式串的局部匹配信息。2.执行时间:O(m+n),其中m,n代表字符串S和T的长度。代码:#include#includeusing namespace std;int next[100];原创 2016-05-19 20:22:11 · 675 阅读 · 0 评论