0%

数据结构学习心得

数据结构和算法的联系

学习了一段时间的数据结构,看了一些书,发现数据结构总会和算法连在一起,感觉有点奇怪,数据结构为什么不独立教呢?,为什么书名大都是数据结构和算法呢?数据结构和算法是什么关系呢?

应用起来才感觉到数据结构就好像算法一样,只不过是一种解决数据存储问题的算法;而数据又往往避免不了查找和排序操作,需要学习查找和排序算法,两者结合才能基本满足对数据的操作.


实际实现原理

数据结构说白了就是要把人脑中抽象的数据存储方式(树,图等)用电脑中具体的物理内存实现。

所以在代码实现时候要明白抽象的储存方式是怎么和内存建立联系的。

毕竟内存地址是呈线性排列下来的,并没有“树”所需要的分支,也没有一种额外储存网的”权”的空间,因此我们需要指针和结构体等工具来建立这种抽象联系。

指针在数据结构中充当一种工具,让储存在存储器不同位置的数据建立联系,比如图的边,和链表的连接。

结构体则拓宽了结点的存储空间以便放入更多信息,比如权或父/子结点。

在这里插入图片描述虽然数据本质上还是存储在线性的物理内存中,但在逻辑上却是一个相对抽象的树或图。


数据结构的比较

从数组到链表,是物理内存地址的连续到不连续;
从链表到树到图是对应关系的增加
(从一对一 到 一对多 再到 多对多);
而队列,栈,权就是人为地加条件,以满足某种特定的需求。


ps:要熟悉一种数据结构或算法,最好就是先明白原理,然后找个模板或者样例反复敲代码然后自己用数据测试几次,否则就会有种似懂非懂,隔了层纱的感觉。