1.引言
从今年3月学数据结构到现在已经有半年多了吧,感觉大起大落,这种感觉很舒服。怎么说呢?本人工作也有一段时间了吧,也做过很多大大小小的项目,然后现在重新回到学校(主要学历太低),工作中做的是java不过也接触了市面上主流的语言,只有一种感受,计算机语言嘛,就是一种工具,各种类之间的调用。在学习这些语言的时候,并没有多少感觉,就是不断地学习语法,不断地做项目,不断地积累经验,但是个人感觉始终只能机械的写代码而已,总是突破不了现状。记得以前老师说过一句话"我只有学数据结构才会有成就感",现在想想这句话很有道理,跟我前文说得大起大落有点类似,数据结构中很多知识比如连续存储、链式存储、二叉树、森林等等,讲实话,很难。先不说代码能不能容易的写出来,光是这些理论概念都不是靠背能够记忆的。不过当你每次遇到一个知识点被困住,然后突然解决他的时候,你就会很有成就感,其他语言有这种感觉吗?答案肯定是有的,不过很少,基本都是机械的学语法,机械的做项目,而数据结构全程会让你体会这种感觉,大起大落就是这样说的。所以我感觉,站在数据结构的角度看来,所有语言都是相同的,用一句话来解释"程序=数据的存储(数据结构)+数据的操作(算法)+一门可以被计算机执行的语言",可以看出,像java/php/都是些皮毛性的课程,当然,我自己这些语言也学得一般,说这些话主要在于表达数据结构的地位。所以个人认为学好数据结构还是很有必要的,引言废话有点多。不想看的可以直接跳过。
2.什么是数据结构?
个人的定义:数据结构解决把一维二维的的数据用一维的方式来存储。 因为我们的计算机内存是一维的线性表,我们所有的数据都要存储到内存中。而现实生活中 很多都是二维的数据(肯定也有一维的),所以数据结构要解决的问题就是怎么样将二维的数据存储在一维的线性表中。
老师给的定义:把现实中大量而复杂的数据类型(个体)以及特定的存储结构(个体与个体的关系)存储在内存中。
总结:数据结构=个体+个体之间的关系
怎么理解总结呢?
举一个例子,存储公司的员工信息,那么单个员工的信息我们把他比作是个体,假设这个员工属于某个部门,那么
存储这个员工的同时,也要把员工所属的部门信息存储起来,那么就涉及到个体与个体的关系存储了。所以在
数据结构中,解决两类问题,一个就是个体的存储还有一个就是个体与个体之间的关系存储。
3.数据结构与算法的关系?
很多课本都把这两门联系起来,那么这两者有什么关系?上面讲了,数据结构就是研究存储个体或者个体与个体之间关系的。那么举一个例子,数据结构中有很多数据类型,例如数组,链表,队列,栈等等,这些数据类型都对应现实中不同的存储,那么不同的数据类型,想要对其进行某些操作(增加一个元素,删除一个元素)都有其不同的操作方法,那么这些不同的操作方法也就是不同的算法,数据结构数据类型何其的多,那么也就相应有了很多算法。所以在学习数据结构的同时算法也是很重要的。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/607351.html