数据结构
1、数据结构的三要素:逻辑结构,存储结构,数据运算
2、逻辑结构:
1)线性结构:线性表,栈,队列
2)非线性结构:树,图,集合
3、数据:是信息的载体,是描述客观事物的属性的信息,且能被计算机识别处理的集合。
4、数据元素:是数据的基本单位,其由若干个数据项组成
5、数据项:构成数据元素的不可分割的最小单位
6、数据对象:是具有相同性质的数据元素的集合,是数据的一个子集
7、数据类型:是一个值得集合和定义在此集合上的一组操作的总称
1)原子类型:不可再分
2)结构类型:可再分
3)抽象数据类型:抽象数据类型组织和与之相关的操作
8、数据结构:是互相之间存在一种或多种特定关系关系的数据元素的集合,包含数据逻辑结构,存储结构和数据运算
一个算法的设计取决于逻辑结构,实现则依赖于存储结构
9、数据的逻辑结构:
10、数据的存储结构(物理结构):
是指数据结构在计算机中的表示
1)顺序存储:把逻辑相邻的元素存储在物理位置也相邻的存储单元中
优点:随机存储,占用空间最小
缺点:只能使用相邻的存储单元,容易产生外部碎片
2)链式存储:不要求存储在物理位置相邻的存储单元,借助指针表示元素之间的逻辑关系
优点:不会出现碎片现象,充分利用存储单元
缺点:指针会占用存储位置,且只能顺序存储
3)索引存储:单独创建一个索引表和存储元素信息分开
优点:检索速度快
缺点:索引表占用位置,且对元素修改需要修改对应的索引表项,复杂
4)散列存储(哈希):根据元素的关键字直接计算出元素的存储位置
优点:对对应节点的操作快
缺点:容易出现存储单元冲突的问题
11、数据的运算
包括数据的运算的定义和实现,定义针对逻辑结构,运算针对存储结构
注:对于栈及类似定义和数据结构,逻辑结构之间的关系
首先栈是一种数据结构,它对应逻辑结构划分为线性结构,她所拥有的两种存储结构为顺序和链式结构
栈的定义是只允许在一端进行插入或删除操作的线性表,按照定义来看他是一种抽象数据模型,其符合数据结构定义
存储结构其实是对逻辑结构的计算机语言的实现,栈本身只有数据元素和数据操作,但是我们约定的认为栈是能够实现的通过计算机语言,所以他也具备了三要素中的存储结构
12、算法
是对特定问题求解步骤的描述
包含:有穷性,确定性,可行性,输入,输出
13、算法效率的度量
1)时间复杂度
2)空间复杂度
空间复杂度,它是对一个算法在运行过程中临时占用存储空间大小的量度。所以它强调的是使用的辅助空间的的大小,而不是指所有的数据所占用的空间。
算法的空间复杂度的计算公式记作:S(n)=O(f(n)),其中,n为问题的规模,f(n)为语句关于n所占存储空间的函数。