数据结构基础
Miracle_520
坚持每天读几页书
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
01.什么是数据结构?(ADT)
数据结构:相互之间存在一种或多种特定关系的数据元素的集合 程序设计=数据结构+算法 1.1数据 数据:描述客观事物的符号。包括:数值类型(整型等)、非数值类型(字符、声音、图像、视频等)。数据是数据元素的集合 例如:人类、禽类 数据对象:性质相同的数据元素的集合,是数据的子集。将数据对象简称为数据 **数据元素:**是组成数据的、有一定意义的基本单位。数据元素是数据结构中建立数据模型的着眼...原创 2019-09-17 15:25:50 · 1779 阅读 · 0 评论 -
02.什么是算法?(算法的时间复杂度分析)
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作 2.1两种算法的比较 求:一个1+2+3+…+100 # O(n) n = 1 sum = 0 while n <= 100: sum = sum + n n += 1 print(sum) 5050 # 高斯的方法O(1) n = 100 sum = 0 sum ...原创 2019-09-17 16:39:38 · 573 阅读 · 0 评论 -
03.线性表的顺序存储结构(一)
线性表的抽象数据类型 ADT 线性表(List) Data 线性表的数据对象集合为{a1,a2,...an},每个元素的类型均为DataType。 其中除第一个元素a1外,每一个元素有且只有一个直接前驱元素,除了最后一个元素an外,每一个元素有且只有一个直接后继元素。 数据元素之间的关系是一一对应的。 在较复杂的线性表中,一个数据元素可以由若干个数据项组成。 Operation I...原创 2019-09-18 21:05:58 · 283 阅读 · 0 评论 -
03.线性表的链式存储结构(二)
数据元素可以存在内存未被占用的任意位置。 除了存数据元素信息外,还要存储它的直接后继元素的存储地址。 数据元素aia_iai的存储映像,称为结点(Node):数据域、指针域(指针or链) 结点由存放数据元素的数据域和存放后继元素结点地址的指针域组成 假设P为指向线性表第i个元素的指针 结点aia_iai的数据域:ai=P.dataa_i=P.dataai=P.data...原创 2019-09-18 21:16:10 · 249 阅读 · 0 评论 -
03.静态链表(三)
对象引用机制,从某种角度也间接实现了指针的某些作用。 用数组来代替指针,来描述单链表 首先我们让数组的元素都是由两个数据域组成,data和cur。也就是说,数组的每个下标都对应一个data和一个cur。 数据域data,用来存放数据元素。 cur相当于单链表中的next指针,存放该元素的后继在数组中的下标,将cur叫做游标。 用数组描述的链表叫做静态链表,这种描述方法叫做游...原创 2019-09-18 21:19:11 · 285 阅读 · 0 评论 -
03.循环链表(四)
将单链表中终端结点的指针端由空指针改为指向头结点,就使整个单链表形成一个环,称为循环链表。 循环链表解决了一个很麻烦的问题:如何从当中一个结点出发,访问到链表的全部结点。 为了使空链表与非空链表处理一致,通常设一个头结点。(但是不是必须的) 循环链表和单链表的主要差异就在于循环的判断条件上,原来是判断p.next是否为空,现在则是p.next不等于头结点,则循环结束。 ...原创 2019-09-18 21:20:45 · 311 阅读 · 0 评论 -
03.双向链表(五)
在单链表中,有了next指针,这就使得我们要查找下一结点的时间复杂度为O(1)。可是如果我们要查找的是上一结点,那最坏时间复杂度就是O(n)。因为我们每次都要从头开始遍历查找。 为了克服单向性这一缺点,设计双向链表,即设置一个指向其前驱结点的指针域。 既然单链表也可以有循环链表,那么双向链表当然也可以是循环表。 p.next.prior = p = p.prior.next 双向链表的许多操作...原创 2019-09-18 21:22:05 · 513 阅读 · 0 评论 -
05.一文详解KMP算法(一)
空格串:是只包含空格的串,空格串有内容和长度,而且可以不止一个空格。 空串:零个字符的串。 子串:串中任意个数的连续字符组成的子序列。 串的比较: 取决于它们挨个字母的前后顺序 通过组成串的字符之间的编码来进行(字符的编码指的是字符在对应字符集中的序号) ASCII编码:8位二进制表示一个字符,总共可表示256个字符。(282^828) Unicode编码:16位二进制表示一个字...原创 2019-09-20 20:17:25 · 284 阅读 · 0 评论 -
05.KMP算法之深度解析(二)
0 1 2 3 4 5 6 7 8 9 10 S: a b c a b a b c a b x P: a b c a b x 多余 a b c a b x 多余 a b c a b x a b c a b x a b c a b x 匹配 a b c a b x KMP算法: ...原创 2019-09-21 22:53:46 · 285 阅读 · 0 评论
分享