写在前面
本系列文章参考了以下纸质书籍:
《数据结构(c语言版)》—严蔚敏/吴伟民
《数据结构与算法分析[C语言描述](第二版)》—【美】Mark Allen Weiss
《算法导论(第三版)》—Thomas H.Cormen Charles E.Leiserson/Ronald L.Rivest Clifford Stein
《数据结构——浙江大学》———MOOC
- 本系列总结不适合作为全知识层面的复习;
- 我的总结是对于一部分数据结构的我觉得比较有意思或者比较重要的点进行总结以方便我日后查看,并不适用所有人;
- 数据结构系列可能是以后一年里面不断更新的系列文章,同时也会更新算法系列,同样也是对我自己喜欢和感兴趣的做记录。
此系列无序,单纯是对于部分知识的个人思考和理解的记录。定义参考书籍在文首已经提到
数据结构是什么
个人理解👨💻
对于数据结构其实学计算机的都多少听说过,与这个词同时经常听到,但是具体定义貌似也不是很确定,几本书的定义都是不太一样的,所以我就不再阐述,但是可以说说我对于数据结构的理解。
数据结构离不开数据和结构,我的理解很表面就是将数据按照一定的结构进行组织。
举个🌰
按照什么结构就是这门学科所教的,其间考虑的元素也是很多,举例来说:
你是一个漫画和二次元爱好者,你家有很多漫画书和轻小说以及你喜欢的手办。今天你搬家了,你专门在新家留了一间兴趣屋来放这些宝贝。
问题来了,你怎么放这些宝贝?
你看上了家具店里的柜子,这柜子看起来不错💞
这是你又开始想了,我该怎么把书放到柜子上呢😶
这里就是数据存入,
经过你的考虑,你决定,按照首字母顺序插入把,年轻人很快啊,你立刻就把书架的书排好。🤘(这里就是简单线性结构🔴)
这时候发现,我擦,《ali》没放进去。出大事了,按需摆放你这还要把排在a后面的书全部往后移,这不要人命吗😱
于是你想,这怎么行,这以后买一本a开头的书再放进去还不得要我狗命。😭
于是你打算采取和图书馆一样的摆放方式,按数字分区,在分区里再排序。👌(这里就是树状结构🎄,或者是二维结构📊)
这样排序,你发现的确好了很多,以后加书找书都挺方便的。🤔
到这里你的买搬书工作就差不多了。而书就是你的数据,你的存储和管理他的方法乃至于你找书的过程都算是数据结构的一环。
但是数据结构其实比这个要更加广, 优质的数据结构和算法能够高效利用空间和节约时间来满足需求。
小结💾
什么是数据结构📃
-
数据对象在计算机中的组织方式
-
逻辑结构(⛓线性结构,🌲树形结构,🕸图等等)
-
物理存储结构(数组啊链表啊之类的)
-
数据对象必定与一系列加在其上的操作相关联
-
完成这些操作所用的方法就是算法
抽象数据类型👨💻(Abstract Data Type)
数据类型
- 数据对象集
- 数据集合相关联的操作集
抽象:描述数据类型的方法不依赖于具体实现
- 与存放数据的机器无关
- 与数据存储的物理结构无关
- 与实现操作的算法和编程语言无关
只描述数据对象集和相关联的操作集“是什么”,并不涉及“怎么做到”的问题。
MOOC举例:
后言
至此数据结构系列个性化生动笔记也开始撰写,在过一段时间会开始包含更多干货,把干货说的生动就是我的目标。以及还会推出关于算法的兴趣类笔记。如果感兴趣或者有意见以及错误欢迎评论区指出,十分感谢!
转载:https://blog.csdn.net/qq_44922487/article/details/113622029