《大话数据结构》框要
随着复习的不断深入,发现数据结构的基础并不牢固,找到了一本相对经典的数据结构书籍——大话数据结构,网上的资源很多,很容易找到PDF版,下面对这本书的知识点做整体性的梳理,主要为之后再回头看找到方向。
第一章 数据结构绪论
1. 什么是程序?
程序 = 数据结构 + 算法
2. 什么是数据结构?
是相互之间存在的一种或多种特定关系的数据元素的集合。
3. 数据结构可分为哪两种结构?
逻辑结构:数据对象中数据元素之间的相互关系
1.集合结构
2.线性结构:一对一
3.树形结构:一对多
4.图形结构:多对多
物理结构:数据的逻辑结构在计算机中的存储形式,也是 存储结构
1.顺序存储结构:地址连续
2.链式存储结构:地址可以连续也可以不连续
第二章 算法
1. 什么是算法?
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作
2. 算法的五大特性是什么?
算法的五个基本特性:
1. 输入
2. 输出(算法至少有一个输出)
3. 有穷性
4. 确定性
5. 可行性
3. 算法设计有什么要求?
1. 正确性
2. 可读性
3. 健壮性
4. 时间效率高和存储量低
4. 算法效率的度量方法有哪些?
1. 事后统计方法
2. 事前分析估计方法
5. 算法时间复杂度:大O阶方法如何推导?
1. 用常数1取代运行时间中的所有加减法常数;
2. 在修改后的运行次数函数中,只保留最高阶项;
3. 如果最高阶项存在且不是1,则去除与这个项相乘的常数;
4. 得到的结果就是大O阶
6. 时间复杂度耗时排序?
O(1) < O(logN) < O(N) < O(NlogN) < O(N^2) < O(N^3) < O(2^N) < O(N!) < O(N^N)
7. 什么是算法的空间复杂度?
算法的空间复杂度是通过计算算法所需的存储空间实现
第三章 线性表
1. 什么是线性表?
List:零个或多个数据元素的有限序列(序列:说明元素之间有顺序、有限:说明线性表是有限的)
2. 什么是线性表的顺序存储结构?
是指用一段地址连续的存储单元依次存储线性表的数据元素
3. 顺序存储结构的线性表 地址计算方法?
存储器中的每个存储单元都有自己的编号,这个编号称为地址。
LOC(ai)= LOC(a1)+ (i - 1)* c
4. 线性表的顺序存储结构更适合执行哪些操作?
1. 适合 存取操作,其时间复杂度为O(1)
2. 不适合 插入和删除操作,其时间复杂度为O(n)
5. 什么是线性表的链式存储结构?
一个或多个结点(Node)组合而成的数据结构称为:链表
结点由两部分内容构成:数据域(存储真实数据元素)、指针域(存储下一个结点的地址)
链表的第一个结点的存储位置叫做:头指针
链表的最后一个结点指针为“空”:NULL
头结点:为了方便对链表进行操作,在链表的第一个结点前附设一个节点,就是头结点:Head
6. 单链表如何完成插入和删除操作?
1. 插入
p -> next = s -> next; p -> next = s; (先调整地址,在插入值,顺序不可颠倒)
2. 删除
q = p -> next; p ->next = q ->next;
7. 线性表的链式存储结构更适合执行哪些操作?
1. 不适合 存取操作,其时间复杂度为O(n)
2. 适合 插入和删除操作,其时间复杂度为O(1)
对于插入或删除数据越频繁的操作,单链表的效率就越明显。
8. 什么是静态链表?(不是重点)
用数组代替指针,将指针地址转化为数组地址,用数组描述的链表叫做静态链表(游标实现法)。
9. 什么是循环链表?
将单链表中终端结点的指针端由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相连的单链表称为单循环链表,简称循环链表。
循环链表判定的条件为当前结点是否指向头结点:p -> next = head ,是则当前结点为尾结点rear
10. 什么是双向链表?
在单链表的每个结点中,再设置一个指向其前驱结点的指针域,在双向链表中的结点都有两个指针域,一个指向直接后继(next),一个指向直接前驱(prior)
p -> next -> prior = p = p -> prior -> next
11. 双向链表如何完成插入和删除操作?
1. 插入(顺序很重要)
s ->prior = p;
s -> next = p-> next;
p -> next ->prior = s;
p -> next = s;
2. 删除(顺序很重要)
p -> next = q -> next;
q -> next -> prior = p;
free(q);
《大话数据结构》框要相关推荐
- 《大话数据结构》读书笔记-查找
写在前面:本文仅供个人学习使用.<大话数据结构>通俗易懂,适合整体做笔记输出,构建体系.并且文中很多图片来源于该书,如有侵权,请联系删除. 文章目录 8.1 开场白 8.2 查找概论 8. ...
- 《大话数据结构》读书笔记-串
写在前面:本文仅供个人学习使用.<大话数据结构>通俗易懂,适合整体做笔记输出,构建体系.并且文中很多图片来源于该书. 文章目录 5.2 串的定义 5.3串的比较 5.4串的抽象数据类型 5 ...
- 大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第1章数据结构绪论 1 第2章算法 17 第3章线性表 41 第4章栈与队列 87 第5章串 123 第6章树 149 第7章图 21
大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第1章数据结构绪论 1 第2章算法 17 第3章线性表 41 第4章栈与队列 87 第5章串 123 第6章树 149 第7章图 211 第 ...
- 《大话数据结构》1、2数据结构、算法
大话数据结构 大话设计模式 head first设计模式 Java核心技术 卷1 深入理解Java虚拟机(JVM高级特性与最佳实践) 图解HTTP 大话数据结构 数据结构介绍, 算法推导大O阶的方法, ...
- 大话数据结构-栈与队列
文章知识点来至于大话数据结构里边章节知识, 这篇主要介绍栈与队列在计算机中存储形式, 以及在某些算法领域中对栈和队列的相关应用.章节最后介绍了著名的逆波兰表达式, 以及通过算法来实现该表达式的运算过程 ...
- 《大话数据结构》读书笔记-图
写在前面:本文仅供个人学习使用.<大话数据结构>通俗易懂,适合整体做笔记输出,构建体系.并且文中很多图片来源于该书,如有侵权,请联系删除. 文章目录 7.2 图的定义 7.2.1 各种图定 ...
- 《大话数据结构》读书笔记-栈与队列
写在前面:本文仅供个人学习使用.<大话数据结构>通俗易懂,适合整体做笔记输出,构建体系.并且文中很多图片来源于该书. 文章目录 4.2栈的定义 4.2.1 栈的定义 4.2.2 进栈出栈变 ...
- 《大话数据结构》读书笔记-线性表
写在前面:本文仅供个人学习使用.<大话数据结构>通俗易懂,适合整体做笔记输出,构建体系.并且文中很多图片来源于该书. 文章目录 3.2 线性表的定义 3.3 线性表的抽象数据类型 3.4 ...
- 《大话数据结构》样章试读
<大话数据结构>样章试读 各位童鞋,<大话数据结构>从写作到出版,虽然经历了一些坎坷,但终于还是在今天正式在一些网店发售了.现在提供两章的完整版试读PDF文件,希望能给您有所 ...
最新文章
- 微擎url模式解读_微擎开发文档之微擎执行主流程介绍
- python __call__的作用,是可以将对象作为方法使用的关键 分析nn.Module源码
- Spring bean - scope详解
- javascript 模板引擎基本原理
- Python 内置模块之 logging
- java不同进程的相互唤醒_Java多线程(二)同步与等待唤醒
- [转载] python中字符串编码形式及其所占字节
- 自动设置图片的序号_编写学位论文时如何给表格和图片自动编号
- 构建官方CoreOS COSA 镜像并构建 CoreOS
- hexo init报错
- 转 疯狂代码 大型网站架构系列(未完待续)
- CVE-2017-0143(远程溢出)漏洞复现
- 停下来想一想:你为什么会离开游戏行业?
- 你知道JavaScript的继承有几种写法吗?
- Dep包管理的主要机制
- 明德扬XILINX-K7-325T/410T核心板数据手册
- 云服务器物理机在,一个云服务器会在两个物理机上吗
- MySQL讲义第 39 讲——select 查询之函数(2):日期时间型函数
- Excel1——复制txt数据到Excel单元格并批量截取获得所需数据
- 小程序统一服务消息接口