现在的位置: 首页 > 综合 > 正文

数据结构

2013年10月06日 ⁄ 综合 ⁄ 共 822字 ⁄ 字号 评论关闭

简单的谈谈我的看法,可能有很多不妥的地方。望各位拍砖!
世界万物都是由数据组成的,任何事物在理论上都可以用数字来表述,就看怎么抽象了。
但是这世界的事物多了去了,这么多的事物怎么才能整理好关系?怎么才能用恰当的方式组织起来呢?
在中学时代,我的化学老师告诉我一句话:事物的结构决定性质!
所以,能够组织这些数据的一个好的办法就是设计一套良好的结构!但是又有问题了,这些数据本身就是现实事物的一个抽象结果,那么靠单单的如何存储组织还是不行的,因为抽象的时候已经包括了逻辑关系。于是在设计良好的数据结构来处理抽象结果的时候就需要考虑两方面的问题:
1.如何高利用率的存储数据?
2.如何高效的处理逻辑关系?

物理存储结构划分为:
顺序存储
链式存储

逻辑结构就按照性质划分为:
线性结构
非线性结构

在解决某个具体的问题时,我们往往是首先抽象问题域的算法,也就是解决问题的思路,然后抽象在这个解题过程里结构上不变的数据组成来设计数据结构。根据算法的特点,选择最方便描述表征算法的结构。
对于物理存储结构:
比如说在算法里,对数据的移动,插入,删除比较多的话,那么就要首先考虑链式存储(仅仅是首先!);如果是对数据的读取,修改比较多话,那么就可以首先考虑顺序存储方式。
对于逻辑结构:
往往数学对于线性的结构处理比较容易,或者说是人类更容易接受。如果问题域本身的逻辑关系就是线性的,那么就很好解决了;如果问题域的逻辑关系本身不是线性的,而是非线性的,那么就要想办法转换成我们人类容易理解的线性结构,比如树和森林,我们可以考虑先转成二叉树然后再来处理就容易多了。

数据结构的核心在于处理指针,即存储数据和数据存储地址的关系。

在链表也好,栈也罢,其关键点在于其内存储了大量的数据的地址,而不是数据本身。

数据自身存储什么都可以,但是不论存什么指针总是能表示出这个数据。

因此,学习,研究数据结构时,建议要抓住本质。不要简单的看书或者听老师讲就认为数据结构是什么什么……

而是要自己用心多去思考……

抱歉!评论已关闭.