摘要: 第八章的内容是排序,看上去很简单,实际上它有很多不同的分类。我觉得全章最难的部分就是算法的理解和时间效率(分最好情况和最坏情况)的分析上。 首先排序整体上可以分成两类:内部排序和外部排序。顾名思义,内部排序就是在内存中完成排序,外部排序就是在内存之外借助外存空间进行排序(数据量足够大的时候)。之前学 阅读全文
posted @ 2020-07-11 22:23 黄梓盈 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 第七章的内容是查找,总的来说整个章节的学习思路很清晰,分为线性表、树表、随机表的查找三部分。 关于线性表的查找,我印象最深刻的内容就是设有“监视哨”的顺序查找方法和折半查找方法。数组首元素存储查找的key数据,保证从后往前遍历到a[0]时能找到key并退出循环,这就不需要计数器来辅助了,这种思路确实 阅读全文
posted @ 2020-06-23 12:24 黄梓盈 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 第六章的内容是图,其中包含的相关术语和算法比我想象中的要更多和更有难度些。我是按照老师安排的内容来学的,十字链表、邻接多重表、拓扑结构这些都是大概看过一下(没有细看,也没看懂)。虽然学知识应该追究到底、把它看懂,但我目前真的抽不出时间来看...只能先放一放,之后有机会再细看好了。 这些相关术语和算法 阅读全文
posted @ 2020-06-10 00:46 黄梓盈 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 第五章的内容是树和二叉树,引入了很多新的概念,比如结点、度、叶子/终端结点等。树是基本逻辑结构中的一种非线性结构,可以采用链式存储结构或顺序存储结构(这得根据实际问题的增/删/改/查/排操作进行确定)。刚学这一章的时候会觉得有些吃力,树的相关术语、性质很多。但是在理解并记住了之后,联合之前的知识来看 阅读全文
posted @ 2020-05-28 18:17 黄梓盈 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 第四章的重点内容在串。刚开始看书看视频的时候觉得把KMP算法弄懂了就算是完全懂了,然而并不是。SPOC上面的讨论是道没有使用KMP算法的题目,但是却花了很多时间去做。总算是弄清楚 char[MAXSIZE] 、char *t 、string之间的用法区别和存储方式的区别。还通过同学分享的博客和老师发 阅读全文
posted @ 2020-05-05 11:12 黄梓盈 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 第三章是栈和队列。同上一章差不多,重难点都在代码的实现上。有些需要注意的点,譬如链栈的入栈函数中用的是前插法,循环队列的头尾指针更新不能只是简单的+1等等。以下是用思维导图做的小结: 在做作业题、实践题的时候,明显感觉到细节的重要性。尤其是实践2,没有注意s[top++]和s[++top]的不同,导 阅读全文
posted @ 2020-04-25 00:43 黄梓盈 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 第二章讲的是线性结构中的线性表,可以按照顺序存储结构和链式存储结构对它进行分类。以下是整理出来的重点: 此外,如何打代码也是一个重点。从目前打过的代码来看,我主要存在的问题是: 1.结点类型和链表类型未分清楚。 1 typedef struct Lnode{ 2 Elemtype data; 3 s 阅读全文
posted @ 2020-04-03 14:56 黄梓盈 阅读(164) 评论(1) 推荐(0) 编辑
摘要: 第1章是绪论,讲了数据结构的相关概念、定义、分类和算法的优劣。我觉得将它以提纲的形式整理出来有助于对比着理解。其中ADT的定义与实现是比较抽象的。刚开始接触的时候没看懂为什么要这么做,后来才发现它正正体现着逻辑结构的重要性。结合课本的框架来看,要学习的内容就更清晰了。本学期的目标是高分通过这门课程。 阅读全文
posted @ 2020-03-18 19:31 黄梓盈 阅读(153) 评论(0) 推荐(1) 编辑