数据结构:第四章学习小结
1、你对本章内容的小结
第四章主要对串、数组和广义表进行了学习。
(1)字符串的学习
在数据结构的这一章中,接触到了关于字符串的新的定义,比如主串、子串和空格串。同样的,字符串也有两种基本的存储结构:顺序存储和链式存储。串的顺序存储又分为两部分:定长顺序存储和堆式顺序存储。考虑到顺序串的插入和删除操作不方便,需要移动大量字符,所以还可以用单链表方式存储字符串。与前面所学的链式存储不同的是,存储串时,一个结点可放一个或多个字符,取决于结点的大小。
串的模式匹配,是需要重点掌握的内容。书中模式匹配算法有BF算法和KMP算法。不同的场合,用到的算法不同,取决于题目。KMP算法可以说是BF算法的改进,时间复杂度更小,例如此次PTA作业题中的串的模式匹配题,用KMP算法会更好。要注意,KMP算法是在next函数的基础上实现的。
(2)数组的学习
与以往的数组学习不同的是,以往的数组学习更多的是针对一维数组或是简单的二维数组。但在第四章学习中,是将N维数组(主要是二维)转变降维处理。例如,将二维数组变为一维数组处理。同时讲解了一些特殊矩阵的处理。
(3)广义表
与字符串和数组不同的是,广义表是一个新的概念。广义表也可被称为列表,要注意,广义表的定义是一个递归的定义。
2、完成作业或实践时的心得体会
可能是假期有些躁动不安,在完成代码作业时,耐心欠佳,浅浅尝试之后便忍不住去寻求帮助。在完成串的模式匹配一题时,体会到了算法不同对题目结果造成的影响,起初用BF算法尝试时,只拿到了部分分数,当串的长度到达最大值时,无法成功运行。后来改用KMP算法才得以通过。感觉对BF和KMP算法有些理解不透。求交集一题,此次不同的是,多了一个排序问题,可以通过sort函数实现,要注意添加对应头文件。
3、上一阶段的目标完成情况,接下来的目标
(1)上一阶段目标完成情况:
这次虽做到上一阶段对自己不拖沓的要求,但是并没有做到多打多练。
(2)接下来的目标
#1 多打多练
#2 稳住心态,不要浮躁,不要排斥打代码要沉下心