由于5月份要软考,于是乎便开始了我的软考复习之路。到现在为止开始复习也有两周了。还有一个半月
的时间,其中还要考一门考试。时间也是非常紧的了。
从软考的复习看来,为什么要把数据结构放在第一位复习呢?原来数据结构不仅是一般程序设计的基础,而
且是设计和实现编译程序、操作系统、数据库系统以及其他系统程序的重要基础。并且计算机本来就是对信息的
加工处理的,数据只有在执行之后才有意义,所以先了解了数据的存储结构,然后再步步深入进而更深入学习进
程等知识。本篇文章简单介绍了数据结构的基本知识,大概框图,整理思路。
数据结构是计算机存储、处理数据。其中根据数据结构的内容也能理解数据结构是数据的存储,组织数据的
方式。其中数据通过不同的方式存放在计算机中,进而数据的结构直接影响算法的选择和效率。了解了这些之后
就来看看数据结构的内容吧。
数据结构的分类
逻辑结构是数据元素之间的逻辑关系,即数据元素之间的关联方式或邻接关系。
存储结构是逻辑结构在计算机中的实现。
结构
特点
存储方法
基本操作
线性表
线性表是最简单、最基本、也是最常用的一种线性结构
顺序存储和链式存储
插入、删除和检索等
树
对具有层次结构的数据需要用树形结构来描述,树形结构可以表示更复杂的数据
顺序存储和链式存储
查找、插入、删除
图
结点之间的邻接关系可以是任意的。可以描述多种复杂的数据对象,应用较为广泛
邻接矩阵、邻接表(顺序存储和链式存储的结合)
搜索
Hash表
十分实用的查找技术,具有极高的查找效率
散列存储
查找
算法
算法的设计取决于逻辑结构,而实现依赖于采用的存储结构。
查找算法
算法
特点
优点
缺点
平均查找长度
适用范围
顺序查找
顺序比对当前结点与关键字是否相等
实现起来简单方便,逐个查询
效率不高
(n+1)/2
二分查找
每次查找中我们都把表的长度减半
更节省时间和空间
二分查找要求表元素是排好序的
lg(n+1)-1
只是用于顺序存储结构
分块查找
由一个索引表和一个顺序表组成
有索引表,查找速度快
数据元素的排序和索引顺序表的分块是要额外花时间的
(分块查找索引表)平均查找长度=Log2(n/s+1)+s/2
(顺序查找索引表)平均查找长度=(S2+2S+n)/(2S)
介于顺序查找和二分查找之间
排序算法
排序算法的分类如上所示,学习这几个算法,首先要了解每个算法的特点、优缺点、性能(时间复杂度和空
间复杂度)、稳定性等特点就能很好掌握,区分。
总结
由上面的内容可以看出计算机算法与数据的结构密切相关,如上图,每种算法都有适用的数据结构,也就
是算法无不依附于具体的数据结构,数据结构直接关系到算法的选择和效率。
通过写这篇文章,发现了虽然是自考学过,但是还是不能大意,还需要计划,做好总结,编织知识网,一点
点去积累。这只是一个开始。