数据结构反复学习多番,始终不能算是精,用的时候虽然看看资料便能用起来,但若有人细问我数据结构我还真不知该说些什么。借着机会以及项目中的应用,稍微总结总结。此处为开篇,还是先来说说个人对数据结构的一种理解,具体实用的内容后面再做探讨。
在我看来,数据结构其实就是一种编程思想实例化出的具体手段。我不知道我的这种想法是否和多数人一致,但至少在我刚接触数据结构的时候觉得稍微思考一下数据结构课本中的那些东西,在脑海中形成一个简单的结构图,具体的设计也就很容易了,完全没有必要去记忆什么具体代码,就比如下面的图片。
规范一点来谈数据结构的话,数据那就是计算机处理的对象,结构则为数据彼此之间的关系。数据有时候是很复杂的,面对复杂的数据,想要有效率且更为合理地完成一些特定需求地处理,势必要尝试去构造一个抽象的数据模型来完成这一特定的运算。著名的例子就是高斯计算1到100的累加和,似乎计算这么一百个数的和是源于老师对学生的处罚。当高斯迅速得出正确答案是,老师都很吃惊。首尾相加乘以个数除以2,这样简单明了,其实这就是一种抽象模型的设计。
说白了数据结构本身就是一种算法设计,这也是为什么数据结构一般都要和算法一起说,像什么《数据结构与算法设计》这样的书籍。
数据结构一般要从逻辑结构和物理结构来研究,所谓逻辑结构就比如集合结构、线性结构、树形结构、图形结构;物理结构是相对于硬件来说的,就是逻辑结构在计算机中的存储形式,一般有顺序存储结构、链式存储结构……可研究的东西很多。
脑子灵活一点,对于数据结构当然可以自己开创一些特殊的模型。但是稳定性和可执行性都需要严格考量。好的结构不紧对于代码编写本身有帮助,对于数据处理也肯定是大有裨益。编程做得越多体会也便更深刻!