
数据结构与算法
文章平均质量分 76
lifestylegoingon
生活没有变,只是生活的态度发生了变化,就能活出不一样的人生
展开
-
数据结构基础8_循环队列(顺序实现)
typedef int ElemType;typedef int Status;#define true 1#define false 0#define maxsize 100#include#includetypedef struct { ElemType *base; int front; int rear;原创 2015-10-17 21:47:03 · 581 阅读 · 0 评论 -
数据结构基础7_链队的实现
typedef int ElemType;typedef int Status;#include#include#define true 1#define false 0typedef struct Qnode{ ElemType data; struct Qnode *next; }Qnode,*queueptr;原创 2015-10-16 22:19:16 · 505 阅读 · 0 评论 -
数据结构基础6_链栈的实现
typedef int ElemType;typedef int Status;#include#define true 1#define false 0typedef struct Snode{ ElemType data; struct Snode *next; }Snode,*pstack; typedef stru原创 2015-10-16 12:40:38 · 402 阅读 · 0 评论 -
数据结构基础5_顺序栈的实现
typedef int ElemType;#define true 1#define false 0typedef int Status;#include#include#define stackinitsize 100#define stackincrease 10typedef struct{ ElemType *base;原创 2015-10-14 22:23:25 · 532 阅读 · 0 评论 -
数据结构基础4_双链表的实现
typedef int ElemType;typedef int Status;#define true 1#define false 0typedef struct Dnode{ ElemType data; struct Dnode *pre; struct Dnode *next; }Dnode,*lin原创 2015-10-14 22:18:54 · 337 阅读 · 0 评论 -
数据结构基础3_带头结点的单链表
#include#include#includetypedef int ElemType;typedef int Status;#define true 1#define false 0typedef struct Lnode{ ElemType data; struct Lnode *next; }*link,*Position;t原创 2015-10-13 12:51:01 · 497 阅读 · 0 评论 -
数据结构基础2_单链表的实现
#include#include#include#define true 1#define false 0typedef int Status;typedef struct Lnode{ ElemType data; struct Lnode *next;}Lnode,*linklist;void Initlist(linklist &L){ L=(linklist)mal原创 2015-10-10 17:21:44 · 402 阅读 · 0 评论 -
数据结构基础1_顺序表
typedef int ElemType;typedef int Status;#define INCREASEMENT 50#define true 1#define false 0#define list_init_size 100typedef struct{ElemType *elem;int length;int listsize;}sqli原创 2015-10-09 20:27:32 · 317 阅读 · 0 评论 -
队列之顺序队列
队列之顺序队列队列是除了栈以外又一个具有限定性的线性结构,队列这个数据结构具有广泛的应用,比如说作业调度及输入输出管理。那么队列是什么呢?队列是一种具有限定性的线性表。它只容许在表的一端插入和表的另一端删除。容许插入的一端叫做队尾,那么容许删除的一端就是队头。如图所示:从图中可以看出,最先进入队列的元素也是可以最先出队的。所以,队列具有先进先出的特性。这就好比在车站买票原创 2015-08-28 19:35:50 · 516 阅读 · 0 评论 -
栈的应用
栈的应用栈的应用之一:括号匹配括号匹配问题是考察栈的常考问题。括号匹配充分应用了栈的后进先出的原理。举例来说,比如字符串(a*(c+b)-d)中,第一个位置和第四个位置有左括号,第八个位置和第11个位置有右括号。并且它们相互匹配。在比如(a+b))(,在这个串中,我们应如何判断哪个匹配呢,这就得依靠栈。我们建立一个int栈,可以将左括号的位置压入栈中,然后遍历字符串,如果发现右括号就将栈顶原创 2015-08-27 13:38:55 · 428 阅读 · 0 评论 -
栈之链栈
链栈链式栈是线性表的链接存储表示形式。我们采用链式栈来表示一个栈,有利于结点的插入和删除。用链接表示不但能提高效率。还可达到共享的目的。如图所示为一个链式栈。从图中可以获知,链式栈的栈顶在链表的表头。那么新结点的插入和结点的删除都在链表的表头,也就是栈顶进行的。下面给出链栈的实现:#ifndef LINKSTIC_H#define LINKSTIC_H#incl原创 2015-08-26 15:12:30 · 337 阅读 · 0 评论 -
栈之顺序栈
顺序栈前面的几篇是关于链表的,从今天开始我们把注意力转移到栈上面来。栈是一个很重要又很常见的数据结构。用途非常广泛。比如后面将要提到的表达式计算进制转换等等都需要栈的配合。另外,栈还可以应用到函数调用等方面。那么什么是栈呢?栈可以标准定义为只可以在表的末端进行插入和删除的线性表。那么容许插入和删除的一端叫做栈顶(top),而另一端叫做栈底。当栈中没有任何元素时,叫做空栈。由于栈的特原创 2015-08-26 11:59:27 · 361 阅读 · 0 评论 -
线性表之循环链表和双链表
循环链表:循环链表也是常见的线性数据结构之一,它的节点结构跟单链表相同,唯一不同的是它的表尾的link域不是NULL,而是first。循环链表有他的优点,那就是只要知道表中任何一个结点的地址,就能遍历表中任何一个结点。如果我们设current为此循环链表的检测指针。当用它进行遍历时。到达表尾的条件不再是current->link==null;变为current->link==first;是原创 2015-08-24 17:36:08 · 411 阅读 · 0 评论 -
线性表之顺序表的性能分析
顺序表的性能分析在顺序表中,最常见的操作当然是查找(搜索),插入和删除了,现在对这三种操作的复杂度进行简要的分析。第一,搜索:顺序表的顺序搜索算法,它的主要内容就是从顺序表的第一项开始,根据要查找的给定值x,然后在顺序表中逐次进行比较。若相等,则搜索成功,返回它的所在位置。若遍历整个表,没有值与其相等,则返回搜索失败。一般来说,搜索算法的复杂度是根据比较次数来决定的。简要分析,原创 2015-08-23 10:57:56 · 1193 阅读 · 0 评论 -
线性表之顺序表
线性表我们都知道是一种常用的数据结构,也是历来各种考试的重点。今天抽了一些时间把线性表做了总结。线性表是n个数据元素的一个有限序列。用公式表示为: L=(a1,a2,a3,a4,...........an)因为线性表是一个有限的序列,所以也如上面公式所示,它的各个元素是相继排放的原创 2015-08-22 15:34:12 · 436 阅读 · 0 评论