码迷,mamicode.com
首页 > 其他好文 > 详细

软考——(2)数据结构

时间:2014-09-22 17:36:32      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:软考   数据结构   线性结构   

      数据结构,英文名字叫做Data Structure。说到数据结构,先要说一下数据是什么。数据的含义十分广泛,它并不仅仅指文字记录,它还可以是语音、图像、符号、视频等等。

      我们可以读取这些数据,那么这些数据在计算机中又是如何存储和组织的呢,这就是我们要说的数据结构。

bubuko.com,布布扣


上面的思维导图是按照数据结构的分类及处理画的,其实二者并不是孤立的。在查找和排序中,也可以看到线性、树、图的影子。也就是在数据结构的逻辑存储结构中进行查找和排序等的运算,它们都是紧密结合在一起的。

1)线性

一个一个的元素线性的排列,如下图:

bubuko.com,布布扣

这种结构的存储方式有两种:顺序存储和链表存储。

顺序存储:

bubuko.com,布布扣

和上面的线性逻辑结构一样,顺序存储中一个个元素有序的排列着。

链表存储:

bubuko.com,布布扣

链表存储中有一条“链”将一个个的元素连接起来,而每个元素的位置可以不邻接。

2)树

bubuko.com,布布扣

跟现实生活中的树一样,树形结构有且有一个根结点。树的相关术语很多,但都很容易理解,比如:结点的度,树的度,叶子,层次等等。

由于树的结构十分复杂,我们通常研究的最多的是二叉树。但要注意的是,二叉树并不是树的特殊形式。对比上下两张图片,树中的结点的最大度数没有限制,但二叉树结点的最大度数为2.在树中,结点没有左右之分;而二叉树有区分。

bubuko.com,布布扣

树的存储结构类似于索引存储结构。


3)图

与二叉树相比,树的结构要复杂一些,而图就比树更要复杂了。

bubuko.com,布布扣

图中的任何两个结点都可以相邻接。与图类似的存储结构是散列表,即哈希。

了解了这三个简单的逻辑结构,数据结构就算有了一个初步的认识了,对于之后的算法、查找、排序等,就比较轻松了。

      对于刚接触数据结构的人来说,通常会有这么一个疑问,为什么要学数据结构,它跟算法又有什么关系呢?

      瑞士计算机科学家Niklaus Wirth1976年出版的一本书的书名叫做“程序设计 算法 数据结构”,这句经典名言就体现了数据结构的重要性。数据结构,以及让我们十分头疼的算法并不是一门教你编程的课,它们可以脱离任何的计算机程序设计语言,而只需要从抽象意义上去概括描述。

      打一个很形象的比喻:程序设计就像盖房子,数据结构是砖、瓦,而算法则是设计图纸。你若想盖房子首先必须要有原材料(数据结构),但这些原材料并不能自动地盖起你想要的房子,你必须按照设计图纸(算法)一砖一瓦地去砌,这样你才能拥有你想要的房子。我们今天要说的数据结构正是程序设计这座大厦的基础,只有打好了基础,才有资格谈设计、谈构架。


软考——(2)数据结构

标签:软考   数据结构   线性结构   

原文地址:http://blog.csdn.net/u010066934/article/details/39452489

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!