重学数据结构(一)——数据结构概念
重学数据结构(一)
数据结构的基本概念
1.数据结构
数据结构是指互相直线存在着一种或者多种关系的数据元素的集合。
2.逻辑结构
逻辑结构是指数据之间的相互关系,通常分为四种结构:
- 集合:结构中的数据元素都是同一种类型。
- 线性结构:结构中的数据元素之间存在一对一的关系。
- 树形结构:结构中的数据元素之间存在一堆多的关系。
- 图状结构:结构中的数据元素之间存在多对多的关系。
3.存储结构
存储结构:是指数据结构在计算机中的表示,又称为数据的物理结构。通常有两种基本的存储方法实现:
顺序存储方式
数据元素顺序存放,每个存储节点只有一个元素,存储空间要求连续。(插入和删除等操作效率较低)。
链式存储方式
每个节点除了包含数据的元素信息,还包含一组指针。指针反映数据元素间的逻辑关系。存储空间不要求连续,便于动态操作(插入,删除等)。
在顺序存储结构的基础上,又可延伸出另外两种存储结构,即索引存储和散列存储。
索引存储就是在数据文件的基础上增加了一个索引表文件。通过索引表建立索引,可以把一个顺序表分成几个顺序子表,其目的是在查询时提高查找效率,避免盲目查找。
散列存储就是通过数据元素与存储地址之间建立起某种映射关系,使每个数据元素与每一个存储地址之间尽量达到一一对应的目的。这样,查找时同样可以大大提高效率。
算法的基本概念
算法
数据结构是数据的组织、存储和运算的总和。他的目的就是为了提高算法的效率。
算法(Algorithm)是指在有限的时间范围内,为解决某一问题而采取的方法和步骤的准确完整的描述,它是一个有穷的规则序列,这些规则决定了解决某一特定问题的一系列运算。
算法应该具有的特征
有穷性
一个算法应包含有限个操作步骤,即一个算法在执行若干个操作步骤之后应该能够结束,并且每一步都要在合理时间内完成。
确定性
算法中的每一个步骤必须有确切的含义,无二义性,在任何情况下,对于相同的输入只能得出相同的输出。
可行性
算法中的每一个步骤都应该能够通过已经实现的基本运算的有限次执行得以实现。
输入
输入指的是在算法执行时,从外界取得必要的数据。一个算法可以有一个或一个以上的输入,也可以没有输入。
输出
数据结构输出指的是算法对输入数据处理后的结果。一个算法可以有一个或一个以上的输出,没有输出的算法是无意义的。