数据结构基本概念
数据是信息的载体,是能够被计算机识别、存储、计算(处理)的符号集合,是计算机处理的对象的总称。
数据元素,也称作节点,是数据的基本单位。
数据项:数据的最小单位。
数据对象:具有相同特征的数据元素的集合,是数据的子集。
数据结构:是计算机存储、组织数据的方式,它描述了数据元素之间的相互关系以及数据元素的的组织形式。
- 逻辑结构
是指从逻辑关系上描述数据,与数据的存储无关,且独立于语言。 - 存储结构
数据的存储结构是指数据元素及其关系在计算机存储时如何表示,依赖于语言。
区别:
- 数据运算
它通常定义在数据的逻辑结构上,每种逻辑结构都有一个运算的集合,但运算的具体实现要在存储结构上进行。
线性结构指有且仅有一个开始节点和一个终端结点,所有结点都最多只有一个直接前驱和一个直接后继
如:线性表、栈等。
非线性结构:一个节点可能有多个直接前驱和直接后继。如:树、图。
算法:为求解一个问题需要遵循的、被清晰地指定的简单指令的集合。
复杂度:是衡量一个算法好坏的重要手段,分为时间复杂度和空间复杂度。 - 时间复杂度:它以一个算法执行的时间长短来衡量优劣。如果问题规模是n,则时间复杂度是n的一个函数,记作T(n)=O(f(n));
例:for (i=0;i<=n;i++) 时间复杂度为O(n);
for (i=0;i<=2n;i++)时间复杂度是O(2n);
- 空间复杂度:它以一个算法执行过程中占用的存储多少来衡量一个算法的优劣。它也是问题规模n的一个函数,记做S(n)=O(f(n));
线性表
概念:它是由n(n>0)个数据元素(结点)组成的有限序列。
特点:有且又一个开始结点;有且仅有一个终结结点;内部结点都有且仅有一个前驱结点和一个直接后继结点。
示例
//线性表接口
public interface linearList {
boolean isEmpty();
int size();
E get(int index);
E set(int index,Object e);
boolean add(int index,Object e);
boolean add(Object e);
E remove(int index);
void clear();
}
顺序存储:计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素。