数据结构:第四章学习小结

1.本章内容小结

本章介绍了三种数据结构:串,数组和广义表。

本章给出了字符串的抽象类型定义,让我了解了对于字符串的操作有哪些(赋值串,复制串,判断空串,两串的比较,返回串长,清空串,连接两串,返回子串,判断是否为子串(重点)),其中返回子串的实现为老师布置的讨论内容,也给出了字符串的两种存储结构(顺序存储,链式存储),其中顺序存储又分顶长顺序存储和堆式存储。last but not least,给出了串的模式匹配算法,bf算法简单易懂,但时间复杂度太高,kmp算法时间复杂度低,但晦涩难懂。通过不断搜索视频,翻阅资料,以及mooc上老师的视频,我大概掌握了kmp算法的核心所在(求最长前后半缀)以及实现代码,又了解了优化后的kmp算法。本章的数组部分

,讲解了二维数组在计算机中的存储结构(行序为主或列序为主的顺序存储结构),二维数组元素的存储位置的公式:LOC(i,j)=LOC(0,0)+(n*i+j)L,这就解释为什么二维数组作为函数参数时,必须写清楚列数的原因。广义表的内容比较晦涩难懂,故只了解了个大概。

2.完成作业或实践的心得

pta上的编程题字符串的模式匹配,我直接摒弃了bf算法,使用了比较难的kmp算法,顺便了练习巩固了一下。我先用了传统的kmp算法,又用了优化后的kmp算法,发现最后两个数据量较大的测试点的用时少了几毫秒。求交集一题,我原本想用两个数组存储两行数据,分别使用sort后通过循环将结果存储在另一个数组。但我最后用了散列的知识(感觉有点取巧)来完成了这道题,虽然降低了时间复杂度,但浪费了很多空间。通过完成作业,我觉得应该沉住气,慢慢来,因为有时候我想完成一件事,还没坐下几分钟,心里面已经想起另一件还没做的事,每天也都想着还有好多没做的事,结果却什么也没做。

3.上一阶段的目标完成情况,接下来的目标

找了时间做了python可视化的一个小项目,算是完成了一个小目标,每天看了csdn的一篇感兴趣的内容,学了图的邻接表做法和邻接矩阵做法。接下来想通过c语言自己写一个贪吃蛇的小游戏(当然是在csdn帮助下)。

posted @ 2020-05-05 03:15  严东高  阅读(171)  评论(0编辑  收藏  举报