一、概论
1.数据(Data): 信息的载体,能被计算机识别、存储和加工处理。
2.数据项:具有独立含义的最小标识单位。
3.数据元素(Data Element):数据的基本单位,可由若干数据项组成,
4.数据结构(Data Structure):数据之间的相互关系,即数据的组织形式。
(1)数据的逻辑结构:从逻辑关系上描述数据,与数据存储无关,独立于计算机。
数据的逻辑结构可以看做是从具体问题抽象出来的数学模型。
数据的逻辑结构简称为数据结构,有:
<1>线性结构:若结构时非空集则仅有一个开始和一个终端结点并且所有结点最多只有一个直接前驱和后继
<2>非线性结构:一个结点可能有多个直接前驱和后继。包括数组、广义表、树和图等。
(2)数据的存储结构:是逻辑结构用计算机语言的实现,依赖于计算机语言。
<1>顺序存储:把逻辑相邻的结点存储在物理上相邻的存储单元内。
<2>链接存储:结点间的逻辑关系由附加指针字段表示。
<3>索引存储:存储结点信息的同时,建立附加索引表,有稠密索引和稀疏索引。
<4>散列存储:按结点的关键字直接计算出存储地址。
(3)数据的运算:定义在逻辑结构上,每种逻辑结构都有一种运算集合。
常用的运算:检索、插入、删除、更新、排序。
5.数据类型:一个值的集合及在值上定义的一组操作的总称。分为原子类型和结构类型。
6.抽象数据类型(ADT):抽象数据的组织和与之相关的操作。优点:将数据和操作封装在一起实现了信息隐藏。
抽象数据类型是在概念层上描述问题;类是在实现层上描述问题,在应用层上操作对象(类的实例)解决问题。
7.评价算法的好坏:算法是正确的;执行算法所耗的时间;执行算法的存储空间(辅助存储空间);易于理解、编码、调试。
8.算法的时间复杂度T(n):是该算法的时间耗费,是求解问题规模n的函数,记为O(n)。
时间复杂度按数量级递增排列依次为:常熟阶O(1)、对数阶O(log2n)、线性阶O(n)、线性对数阶O(nlog2n)、平方阶O(n^2)、立方阶
O(n^3)、……k次方阶O(n^k)、指数阶O(2^n)
9.算法空间复杂度S(n):是该算法的空间耗费,是求解问题规模n的函数。
10.算法衡量:是用时间复杂度和空间复杂度来衡量的,他们合称算法的复杂度。
11.算法中语句的频度不仅与问题规模有关,还与输入实例中个元素的取值相关。
二、线性表
1.线性表:是由n(n>=0)个数据元素组成的有限序列。
2.线性表的基本运算:
http://www.cnitblog.com/weitom1982/archive/2006/03/30/8298.aspx
原文链接:https://www.f2er.com/datastructure/383098.html