软考——(2)数据结构
来源:互联网 发布:算法必须有输出 编辑:程序博客网 时间:2024/05/17 06:10
数据结构,英文名字叫做Data Structure。说到数据结构,先要说一下数据是什么。数据的含义十分广泛,它并不仅仅指文字记录,它还可以是语音、图像、符号、视频等等。
我们可以读取这些数据,那么这些数据在计算机中又是如何存储和组织的呢,这就是我们要说的数据结构。
上面的思维导图是按照数据结构的分类及处理画的,其实二者并不是孤立的。在查找和排序中,也可以看到线性、树、图的影子。也就是在数据结构的逻辑存储结构中进行查找和排序等的运算,它们都是紧密结合在一起的。
1)线性
一个一个的元素线性的排列,如下图:
这种结构的存储方式有两种:顺序存储和链表存储。
顺序存储:
和上面的线性逻辑结构一样,顺序存储中一个个元素有序的排列着。
链表存储:
链表存储中有一条“链”将一个个的元素连接起来,而每个元素的位置可以不邻接。
2)树
跟现实生活中的树一样,树形结构有且有一个根结点。树的相关术语很多,但都很容易理解,比如:结点的度,树的度,叶子,层次等等。
由于树的结构十分复杂,我们通常研究的最多的是二叉树。但要注意的是,二叉树并不是树的特殊形式。对比上下两张图片,树中的结点的最大度数没有限制,但二叉树结点的最大度数为2.在树中,结点没有左右之分;而二叉树有区分。
树的存储结构类似于索引存储结构。
3)图
与二叉树相比,树的结构要复杂一些,而图就比树更要复杂了。
图中的任何两个结点都可以相邻接。与图类似的存储结构是散列表,即哈希。
了解了这三个简单的逻辑结构,数据结构就算有了一个初步的认识了,对于之后的算法、查找、排序等,就比较轻松了。
对于刚接触数据结构的人来说,通常会有这么一个疑问,为什么要学数据结构,它跟算法又有什么关系呢?
瑞士计算机科学家Niklaus Wirth于1976年出版的一本书的书名叫做“程序设计 = 算法 + 数据结构”,这句经典名言就体现了数据结构的重要性。数据结构,以及让我们十分头疼的算法并不是一门教你编程的课,它们可以脱离任何的计算机程序设计语言,而只需要从抽象意义上去概括描述。
打一个很形象的比喻:程序设计就像盖房子,数据结构是砖、瓦,而算法则是设计图纸。你若想盖房子首先必须要有原材料(数据结构),但这些原材料并不能自动地盖起你想要的房子,你必须按照设计图纸(算法)一砖一瓦地去砌,这样你才能拥有你想要的房子。我们今天要说的数据结构正是程序设计这座大厦的基础,只有打好了基础,才有资格谈设计、谈构架。
- 软考——(2)数据结构
- 软考(1)——看图心想数据结构
- 数据结构——软考探究(一)
- 软考(二)——数据结构与算法
- 软考——数据结构总结
- 软考进行时——数据结构
- 【软考视频基础知识】——数据结构
- 数据结构导论(2)——考后小结
- 软考第一章(数据结构)
- 软考——数据结构与算法小结
- 软了个考——数据结构总是这么苦大仇深
- 【软考】——数据结构与算法基础
- 《软考之旅》——数据结构导论总结
- 我的软考之路(四)——数据结构与算法(2)之树与二叉树
- 备战软考(一)——数据结构与算法基础
- 软考之路(三)——数据结构之查找表与哈希表
- 【软考】软件攻城狮考试(五)——数据结构
- 软考之路(一)---数据结构
- 进程和线程的区别
- Java中JOptionPane的用法
- 黑马程序员——数组
- 《思考的乐趣》读书笔记
- 在MFC应用中深入定制WebBrowser控件
- 软考——(2)数据结构
- Matlab基础学习--------关系和逻辑运算及多项式运算
- java之Io-File类
- 学习《Unix环境高级编程》之问题
- Poj1056
- JAVA_WEB项目(结合Servlet+jsp+ckEditor编辑器+jquery easyui技术)实现新闻发布管理系统第二篇:登陆和注销功能实现
- java学习笔记day10
- Android Notification
- nyoj114某种序列