`
sunqing0316
  • 浏览: 37591 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

软考进行时——数据结构

 
阅读更多
	软考第一章就是数据结构。这门课自考也有,而且米老师也给多次讲过,结合老师讲的和自己的理解在这里总结一下。
	现在一提起数据结构就很自然的想起一张图和有关数据结构的整体知识框架。不过我们最先需要解决的问题就是,为什么要学习数据结构,为什么它处在了软考视频当中的第一章,可见其基础和重要。
	第一步先要明确计算机是干嘛用的?没错,处理数据的,而且是大量的数据。无论数据在计算机中是以怎样的方式存储的,处理10条和处理100条是看不出效率上的差别的。但是当处理上万条,上千万条数据的时候,处理效率就会有很大的差别了。为了更好的利用空间和时间,让计算机在处理数据的时候能有更高的效率,才有了数据结构。可见,数据结构是计算机运行效率的基础。
接下来,就让我们看一下在计算机中都有怎样的数据结构。
	
	以上这幅图是从两个方面来说明数据在计算机中存储的方式的:逻辑上和物理上。不管在逻辑上是如何存储的,在物理上都可以用顺序和链式两种方式来存储。顺序方式是指数据在硬盘上是连续存储的,这个的限制比较大,必须保证硬盘上有足够大的空间,否则就不能实现。而链式结构恰好可以弥补这一缺陷。
	
顺序和链式对比:
顺序
	优点:遍历方便。遍历的时候只要输入你要查找的位置,他可以自己计算内存大小,(因为元素时顺序存储的,所以元素的存储位置之间有一定的关系),直接访问,无论你要访问哪里,只需要一步定位。如果数据元素个数已知,较链式存储节省空间。
	缺点:存储空间固定,可扩展性差,删除,插入操作需要花费很多时间在移动元素上。
链式
	优点:插入和删除元素方便,开销小。可扩展性强
	缺点:遍历也就是浏览就比较费时了.他是根据每个元素存储的下一位的地址来访问的.比如要访问第九个就必须从第一个开始,第一的问第二,第二问第三.比较费时。
	说完了物理存储,接下来看看逻辑结构。在逻辑结构上其实可以用一个演化图来表示:
	当数据在集合中是没有关系的,杂乱的,就是下面这幅图的样子。
	
	数据可以连接成一条线的时候,就是数据结构,这个就会涉及到数据的直接前驱和直接后继,这个在下图中可以很明显的看出来。
	
	当数据之间的关系变得更加复杂的时候,不仅仅只是一对一的关系的时候,就变成了树形结构
	
	数据之间的关系再次演化,更加复杂,变成了多对多的时候,就是下面的图。
	
	数据之间的逻辑结构是根据数据之间的关系的不同而不断变化的,但是,不论逻辑上的数据结构怎么变化,在物理上它都是以线性的方式来存储的,无论是顺序的还是链式的(无论空间是否连续),它们都是线性的。
	既然知道了数据的存储结构,那么接下来要做的自然是利用这些数据了,并且是高效的利用。说道高效,就要考虑用什么方式来提取这些数据了。这就像用斧头和锯砍树一样,不同的工具自然得到不同的效率。
	对于数据利用来说,最直接的首先就是查看
	
	其次就是排序。
	
	排序这一部分在这里就不详细说了,以后还有后续总结。
	总结:
	数据结构的整体框架也就那么回事,从简单的集合,到线性表(一对一),树(一对多),图(多对多),然后就是针对这几种不同的数据结构进行的查找及排序操作。具体的内容其实还有,但是首先要宏观掌握,这是第一步,以后还要继续深入研究。今天就先到这吧。
	
	
	
	

	

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics