数据结构:
从逻辑上讲,常见的数据结构有,集合,线性,树和图。
存放这些元素的有顺序存储和链式存储。
集合和线性,这2种数据结构,必须是放到内存或文件中,一般是希望按某种规则能查找到集合内的元素。所以个人认为,集合基本狭义上可以认为是线性结构。一个函数内,散布的变量,可以看作集合,但研究他们有什么意义呢?
只有编译器才需要研究他们。研究他们就要放到一起。对程序员来说,函数内无关系的变量们是一个集合,但是对编译器来说。函数内无关系的变量们是一个线性结构。
1)线性的元素是一对一关系。
2)树的元素是一对多关系。
3)图的元素是多对多关系。
顺序存储。明显查询快速。但是插入就很不方便。要扩大空间,和移动数据。所以基本适用固定大小,且少插入动作,只是查询和修改。
链式存储,查询慢,但是插入快速。适合不固定大小,频繁插入的情况
一,线性基本存储了下一个元素地址。一般是链式存储。如果是固定大小,又不插入。那根本不需要线性了。用集合就好了。
二,树,节点从逻辑上要保存子树的地址,从逻辑上都已经实现了链式存储。所以一般没有必要顺序存储。
三。图也是一样。从逻辑上保存了其他元素的地址。已经实现了链式存储。没有必要顺序存储。
原文:http://www.cnblogs.com/lsfv/p/6260215.html