数据结构
数据结构是计算机存储、组织数据的方式。 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。 数据结构往往同高效的检索算法和索引技术有关。本专栏内容参考自《数据结构教程》(李春葆版)
whoamilzq
菜鸟程序员,熟悉Ctrl+C,Ctrl+V的使用。
展开
-
1、算法分析
算法分析算法分析就是分析算法占用计算机资源的多少。 而计算机资源主要是CPU时间和内存空间,分析算法占用CPU资源的多少称为时间性能分析,分析算法占用内存资源的多少称为空间性能分析。衡量算法时方法事前估算法事后统计法时间复杂度算法执行时间≈\approx≈算法中一条语句执行的时间×\times×时间频度T(n)也就是说T(n)与算法的执行时间成正比,为此用T(n)表示算法的执行时间,比较...原创 2019-03-24 22:57:47 · 1618 阅读 · 0 评论 -
2、递归算法的设计
1. 能够使用递归的条件:一般来说,能够使用递归解决问题应该满足以下3个条件:需要解决的问题可以转化为一个或多个子问题来解决,而这些子问题的求解方法与原问题完全相同,只是在数量规模上不同。递归调用的次数必须是有限的。必须有结束递归的条件来终止递归。2. 递归算法的设计步骤:对原问题 f(sn) 进行分析,假设出合理的小问题 f(sn-1)。 给出 f(sn) 与 f(sn-1)...原创 2019-03-25 14:54:47 · 2426 阅读 · 0 评论 -
3、线性表的顺序存储结构(顺序表)
线性表的顺序存储结构是把线性表中的元素中的元素按照其逻辑顺序依次存储到计算机存储器中指定位置开始的一块连续的存储空间中,它直接将线性表的逻辑结构映射到存储结构上,既方便理解,又容易实现。...原创 2019-03-29 14:36:39 · 3448 阅读 · 0 评论 -
4、线性表的链式存储结构(单链表)
线性表的链式存储结构称为链表。线性表采用链式存储时,最简单,最常用的方法是在每个结点中设置一个指针域用于指向其后继结点,这样构成的链表称为单链表;另一种采用的方法是在每个结点中设置两个指针域,分别用于指向其前驱结点和后继结点,这样构成的链表称为双链表。 在链表中通常每个链表都带有一个头结点,并通过头结点的指针唯一表识该链表,称为头指针,指向尾结点的指针称为尾指针。 在单链表中,由于每个结点只...原创 2019-03-29 19:12:08 · 916 阅读 · 0 评论 -
5、线性表的链式存储结构(双链表)
对于双链表中,由于每个结点既包含一个指向后继结点的指针,又包含这个指向前驱结点的指针,所有访问一个结点既可以依次向后访问每一个结点,又可以依次向前访问每一个结点。 双链表有些运算的算法与单链表相应的算法是相同的,主要的是双链表的插入和删除操作与单链表有所区别。可以参考单链表的算法实现。双链表的实现:1.声明双链表类型typedef int ElemType;typedef struct...原创 2019-03-30 14:40:09 · 469 阅读 · 0 评论 -
6、循环链表
循环链表是另一种形式的链式存储结构。循环链表有循环单链表和循环双链表两种类型。循环单链表的结点类型和非循环链表的结点类型相同。 把非循环单链表改为循环单链表只要把它的尾结点next指针域由原来的NULL改为指向头节点就行了。从循环单链表的任何一个结点出发均可找到链表中的其他结点。双链表的尾结点的next指针域指向头节点,头节点的prior指针域指向尾结点就形成了一个循环双链表。单链表:循...原创 2019-04-01 21:13:55 · 377 阅读 · 0 评论 -
7、栈
栈是一种只能在一端进行插入和删除操作的线性表。允许进行插入、删除的一端称为栈顶,另一端称为栈底。栈的插入操作通常称为进栈或入栈栈的删除操作叫出栈或退栈。 栈的主要特点是后进先出,即后进栈的元素先出栈。每次进栈的数据元素都放在栈顶元素之前成为新的栈顶元素。每次出栈的元素都是当前栈顶元素。 栈可以像线性表一样采用顺序存储的方式进行存储数据也可以采用链式存储的方式存储数据,采用顺序存储结构的栈称为...原创 2019-04-04 15:20:48 · 324 阅读 · 0 评论 -
8、队列
队列简称队,它是一种操作受限的线性表,仅允许在一端进行插入操作,而在另一端进行删除操作。 进行插入的一端叫做队尾; 进行删除的一端叫做队首。 插入操作叫做入队或进队;删除操作叫出队或离队。 与栈的先进后出 不同,元素进出队的次序是先进先出。 队根据数据存储结构的不同也分为顺序队和链队。一、顺序队1.对顺序队操作四个非常重要的要素。队空的条件:q->front == q-...原创 2019-04-06 22:10:14 · 298 阅读 · 0 评论 -
9、串(顺序串)
1.串的基本概念串:由零个或多个字符组成的有限序列。子串:一个串中任意个连续字符组成的序列。如串 “abcde”,的子串有 “a”、“b”、“ab”、“abc”、“abcde” 等。串和线性表一样,也有顺序存储结构(顺序串)和链式存储结构(链串)。2.顺序串顺序串存储方式有:非紧缩格式,紧缩格式。一个字节可以表示一个字符。由于计算机内存是按字编址的,即以字为存储单位,一个存储单元指的...原创 2019-04-08 19:46:29 · 2159 阅读 · 0 评论 -
10、树的基本概念
1.定义和基本术语树(tree) 是由n(n≥0)n(n\geq0)n(n≥0)个结点组成的有限集合。 如果n=0n=0n=0,他是一棵空树,如果n>0n>0n>0,这n个结点中仅有一个结点作为树的根结点 ,简称为根(root) ,其余结点可分为m(m≥0m(m\geq0m(m≥0个互不相交的有限集,其中每个子集又符合树的定义,这些子集称为根结点的子树。...原创 2019-04-25 19:29:29 · 500 阅读 · 0 评论