数据结构和算法
文章平均质量分 97
oldmao_2000
人工不智能,机器不学习。
展开
-
数据结构绪论学习要点
文章目录概述重点/难点/要点知识点整理练习概述本章介绍数据结构和算法的基本概念,以及算法分析的基本方法,是学习后续各章的基础。本章知识点的组织结构如下图所示:重点/难点/要点本章的重点是:数据结构的基本概念;数据的逻辑结构、存储结构以及二者之间的关系;算法及特性;大0记号的表示。本章的难点是:抽象数据类型的定义和使用;算法的时间复杂度分析。本章要抓住两条主线,一条主线是数据结构,包括数据结构的研究对象及相关概念,另一条主线是算法,包括算法的相关概念、描述方法以及时间复杂度的原创 2020-10-13 10:34:25 · 1281 阅读 · 0 评论 -
线性表学习要点
概述线性表是一种最基本的数据结构,它不仅有着广泛的应用,而且也是其他数据结构的基础,同时,单链表是贯穿整个课程的基本技术。本章虽然讨论的是线性表,但涉及的许多问题都带有一定的普遍性。因此,本章是本课程的重点和核心,也是其他后续章节的重要基础。本章知识点的组织结构如下图所示。重点/难点/要点本章重点是:顺序存储结构和链接存储结构的基本思想;顺序表和单链表的基本算法;顺序表和单链表基本操作的时间性能;顺序表和链表之间的比较。本章难点是:线性表的抽象数据类型定义;基于单链表的算法设计,原创 2020-10-12 10:48:52 · 2778 阅读 · 1 评论 -
栈和队列学习要点
文章目录概述重点/难点/要点知识点整理练习概述栈和队列是常用的基本数据结构,不仅直接用于描述问题,而且作为辅助数据结构大量用于算法实现中。从数据元素间的逻辑关系看,栈和队列是线性结构;从操作方式和操作集合看,栈和队列与线性表有很多不同,有各自的特殊性,但都是操作受限的线性表。本章知识点的组织结构如下图所示:重点/难点/要点本章的重点是:栈和队列的操作特性;栈和队列基本操作的实现。本章的难点是:循环队列的存储方法;循环队列中队空和队满的判定条件。栈学习要点:对于栈要抓住一条明线原创 2020-10-12 12:41:07 · 2338 阅读 · 4 评论 -
树和二叉树学习要点
文章目录概述重点/难点/要点知识点整理练习概述树结构是非常重要的一种非线性结构,具有严格的层次特征,是本课程的重点和难点。本章的内容由树和二叉树两部分组成,并且以二叉链表存储结构为媒介,实现了树和二叉树之间的转换,本章知识点的组织结构如下图所示:重点/难点/要点本章的重点是:二叉树的性质;二叉树和树的存储表示;二叉树的遍历及算法实现;树与二叉树的转换关系;哈夫曼树及应用。本章的难点是:二叉树遍历算法的非递归实现;基于二叉树的遍历实现二叉树的其他操作;树的基本操作的实现。原创 2020-10-13 09:25:39 · 2614 阅读 · 0 评论 -
图学习要点
文章目录概述重点/难点/要点知识点整理练习概述图是一种非常复杂的非线性结构,并且具有极强的表达能力,现实世界中的许多问题都可以抽象为图结构。本章是整个数据结构课程的难点和重点,本章知识点的组织结构如下图所示:重点/难点/要点本章的重点是:图的基本术语;图的各种存储表示:图的两种遍历的思想及算法:图的各种应用。本章的难点是:运用图的遍历算法解决图的其他相关问题;最小生成树算法;最短路径算法;拓扑排序算法:关键路径算法。树学习要点:对于本章的学习要抓住一条明线:图的逻辑原创 2020-11-18 11:33:03 · 955 阅读 · 0 评论 -
查找学习要点
文章目录概述重点/难点/要点知识点整理练习概述查找是数据处理领域中使用最频繁的一种基本操作。查找是以集合为数据结构,以查找为核心操作,同时也可能包含插入和删除等其他操作。本章知识点的组织结构如下图所示:重点/难点/要点本章的重点是:折半查找的过程及性能;二叉排序树的构造及查找;平衡二叉树的调整;散列表的构造和查找;各种查找技术的时间性能及对比。本章的难点是:二叉排序树的删除操作;平衡二叉树的调整方法。本章要以静态查找和动态查找为主线,注意各种查找技术适用的条件以及查找性能原创 2020-10-15 10:04:48 · 1336 阅读 · 0 评论 -
排序学习要点
文章目录概述重点/难点/要点知识点整理练习概述本章主要学习4类内排序方法,插入排序是将记录插入到已排序序列的正确位置上;交换排序是将两个记录进行比较,当记录反序时交换;选择排序是从未排序序列中选出最小记录放在已排序序列的一端;归并排序是将有序序列进行合并,本章知识点的组织结构如下图所示:重点/难点/要点本章的重点是:各种排序算法的基本思想;各种排序算法的执行过程;各种排序算法的设计;各种排序算法时间复杂度;各种排序算法之间的比较。本章的难点是:6. 快速排序、堆排序、归并排序等算原创 2020-11-20 12:46:18 · 718 阅读 · 0 评论 -
01-07数据结构与算法之美笔记
本文将记录王争老师在极客时间上开的《数据结构与算法之美》中的一些重点内容,以及课程中的精选留言原创 2019-10-08 10:49:59 · 704 阅读 · 0 评论 -
07-12数据结构与算法之美笔记
文章目录说明08 | 栈引例:如何实现浏览器的前进和后退功能?入栈时间复杂度的讨论栈在函数调用中的应用栈在表达式求值中的应用栈在括号匹配中的应用栈的思考09 | 队列阻塞队列和并发队列队列处理请求线程的解决方案思考10 | 递归递归需要满足的三个条件编写递归代码递归代码要警惕重复计算思考11 | 排序(上)一、排序方法与复杂度归类二、如何分析一个“排序算法”?三、冒泡排序四、插入排序五、选择排序1...原创 2020-02-23 16:45:03 · 306 阅读 · 0 评论 -
数据结构(C++)笔记:01.绪论
文章目录1.1 数据结构的兴起和发展一、数据结构起源于程序设计。二、数据结构随着程序设计的发展而发展。三、数据结构的发展并未终结。1.2 数据结构的研究对象1.3 数据结构的基本概念1.3.1 数据结构1.3.2数据结构的访问接口1.3.3 抽象数据类型1.数据类型2.抽象3.抽象数据类型1.4 算法及算法分析1.4.1 算法1.什么是算法2.什么是“好”算法3. 算法的描述方法1.4.2 算法分...原创 2019-10-02 11:06:21 · 831 阅读 · 0 评论 -
数据结构(C++)笔记:02.线性表
文章目录2.1 线性表的逻辑结构2.1.1 线性表的定义2.1.2 线性表的抽象数据类型定义2.2 线性表的顺序存储结构及实现2.2.1 线性表的顺序存储结构——顺序表2.2.1 顺序表的实现1.构造函数2. 插入3.删除4. 查找顺序表小结:2.3 线性表的链接存储结构及实现2.3.1 线性表的链接存储结构——单链表2.3.2 单链表的实现1. 按位查找2. 插入3. 构造函数4. 删除5. 析...原创 2019-10-03 10:25:41 · 880 阅读 · 0 评论 -
数据结构(C++)笔记:03.栈和队
文章目录3.1 栈3.1.1 栈的逻辑结构3.1.2 栈的顺序存储结构及实现3.1.3 栈的链接存储结构及实现3.1.4 顺序栈和链栈的比较补充:栈的作用3.2 队列3.2.1 队列的逻辑结构3.2.2 队列的顺序存储结构及实现3.2.3 队列的链接存储结构及实现3.2.4 循环队列和链队列的比较参考书目:3.1 栈3.1.1 栈的逻辑结构栈的定义栈是限定仅在表尾进行插入和删除操作的线性...原创 2019-10-04 10:35:20 · 454 阅读 · 0 评论 -
数据结构(C++)笔记:04.字符串与多维数组
文章目录4.1 串4.1.1 串的逻辑结构4.1.2 串的存储结构模式匹配1.朴素的模式匹配算法2.改进的模式匹配算法参考书目:4.1 串4.1.1 串的逻辑结构串的定义串是零个或多个字符组成的有限序列,只包含空格的串称为空格串。串中所包含的字符个数称为串的长度,长度为0的串称为空串,记作 " ",一个非空串通常记作:S="s1s2……sn"S="s_1 s_2 …… s_n"S="s...原创 2019-10-05 10:00:40 · 1002 阅读 · 2 评论 -
数据结构(C++)笔记:05.树和二叉树
文章目录5.1 树的逻辑结构5.1.1 树的定义和基本术语5.1.2 树的抽象数据类型定义5.1.3 树的遍历操作5.2 树的存储结构5.2.1 双亲表示法5.2.2 孩子表示法5.2.3 双亲孩子表示法5.2.4 孩子兄弟表示法5.3 二叉树的逻辑结构5.3.1 二叉树的定义5.3.2 二叉树的基本性质5.3.3 二叉树的抽象数据类型定义5.3.4 二叉树的遍历操作5.4 二叉树的存储结构及实现...原创 2019-10-05 20:07:52 · 733 阅读 · 0 评论 -
数据结构(C++)笔记:06.图
文章目录6.1 图的逻辑结构6.1.1 图的定义和基本术语6.1.2 图的抽象数据类型定义6.1.3 图的遍历操作6.2 图的存储结构及实现6.2.1 邻接矩阵邻接矩阵的实现1. 构造函数2.析构函数3.深度优先遍历4.广度优先遍历6.1 图的逻辑结构6.1.1 图的定义和基本术语在图中,常常将数据元素称为顶点,将顶点之间的关系用边来表示。图的定义图是由顶点的有穷非空集合和顶点之间边的...原创 2019-11-05 11:15:13 · 732 阅读 · 1 评论 -
数据结构(C++)笔记:07.查找
文章目录7.1 概 述7.1.1 查找的基本概念7.1.2 查找算法的性能7.2 线性表的查找技术7.2.1 顺序查找7.1 概 述7.1.1 查找的基本概念在查找问题中,通常将数据元素称为记录。关键码:可以标识一个记录的某个数据项称为关键码,关键码的值称为键值。查找:查找是在具有相同类型的记录构成的集合中找出满足给定条件的记录。查找的结果: 若在查找集合中找到了与给定值相匹...原创 2019-11-23 20:51:44 · 537 阅读 · 0 评论 -
数据结构(C++)笔记:08.排序
文章目录8.1 概 述8.1.1 排序的基本概念8.1.2 排序算法的性能8.2 插入排序8.2.1 直接插入排序8.2.2 希尔排序8.3 交换排序8.3.1 起泡排序8.3.2 快速排序快速排序复杂度分析8.4 选择排序8.4.1 简单选择排序简单选择排序复杂度分析8.4.2 堆排序1.堆定义2.堆排序3.堆排序复杂度分析8.5 归并排序2路归并排序的递归算法2路归并排序非递归算法8.6 各...原创 2019-11-24 20:56:13 · 673 阅读 · 1 评论 -
小甲鱼作业及笔记
宏定义define和const有什么异同?为什么不能通过不同返回值来重载函数?原创 2019-08-06 12:11:33 · 2177 阅读 · 1 评论