数据结构导论2142复习资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章概论

1,数据表示:将数据从机外表示转化为机内表示。变化过程:机外表示->逻辑结构->存储结构。

2,数据处理:计算机执行对机内表示的数据的各种操作从而实现处理要求,得到所需结果。

过程:处理要求->基本运算和运算->算法

3,计算机专业人员的两项基本任务:数据表示和数据处理。

4,从数据结构观点看,通常的数据分为三个层次:数据、数据元素、数据项。

5,凡能被计算机存储、加工的对象通称为数据。

6,数据元素是数据的基本单位,具有完整确定的实际意义,又称为元素,结点,顶点或记录。

7,数据项是数据的不可分割的最小单位,不具备完整确定的实际意义,又称字段、域。数据元素由数据项组成。8,逻辑关系是指数据元素之间的关联方式或称邻接关系

9,数据元素之间逻辑关系的整体称为逻辑结构。数据的逻辑结构就是数据的组织形式。

10,数据逻辑结构四种基本形式:集合、线性结构、树形结构、图状结构。

11,集合:任何两个结点之间都没有逻辑关系,组织形式松散。

12,线性结构:结点按逻辑关系依次排列成一条锁链。

13,树形结构:具有分支、层次特点,其形态类似自然界中的树。

14,图状结构:各个结点按逻辑关系相互缠绕,任何两个结点都可以邻接。

15逻辑结构与数据元素本身形式、内容无关。逻辑结构与数据元素相对位置无关。逻辑结构与结点个数无关。

16,在数据的逻辑结构上规定的某种操作称为运算。运算是指在任何逻辑结构上施加的操作,即对逻辑结构的加工。这种加工以一个或多个逻辑结构及其他有关参数为对象,以经过修改的逻辑结构或从原逻辑结构中提取的有关信息为结果。

17,运算两种基本类型:加工型运算和引用型运算。查找:找出满足某条件的结点在逻辑结构中的位置。

读取:读出某逻辑结构中指定位置的结点的内容。插入:在某逻辑结构中指定位置增加一个新结点。

删除:撤销某逻辑结构中指定位置的结点。更新:修改某逻辑结构中指定位置的结点内容。

18,数据结构中将数据的组织形式(逻辑结构)和对数据的操作方式(基本运算)作为一个整体来看待。

19,存储实现的目的是建立数据的机内表示。建立的数据的机内表示称为数据的存储结构。

20,一个存储结构分为三个部分:存储节点,数据元素之间的关联方式,附加设施。

21,四种基本存储结构:顺序存储结构,链式存储结构,索引存储结构,散列存储结构。(理解四种形式)

22,算法是计算机科学的一个基本概念,也是程序设计的一个核心概念。一个算法规定了求解给定问题所需要的所有处理步骤及其执行顺序,使得给定类型的任何问题都能在有限时间内被机械的求解。

23,任何算法都是用某种语言加以描述的。三类:程序(计算机语言描述算法),伪语言算法,非形式算法。

24,非形式算法:用自然语言同时可能还使用了程序设计语言或伪语言描述的算法。

25,评价算法的4个方面:正确性,易读性,健壮性,高效性。高效性是指算法的时间性能和空间性能。

26,算法在给定输入下的计算量:a,根据问题特点合理选择一种多多种“标准操作”。b,确定算法在给定输入下执行了多少次标准操作,并将此次数规定为该算法在给定输入下的计算量。

27,以算法在所有输入下的计算量的最大值作为算法的计算量,称为算法的最坏情况的时间复杂度

28,以算法在所有输入下的计算量的加权平均值作为算法的计算量,称为算法的平均时间复杂度

29,算法的输入规模或问题的规模是指该算法输入的数据所含数据元素的数目或与此数目相关的其他参数。

30,常见的时间复杂度量级:常数阶O(1),对数阶O(log2n),线性阶O(n),平方阶O(n2),指数阶O(2n)。

通常认为具有指数阶量级的算法是实际不可计算的,低于平方阶的算法是高效的。

31,空间复杂度是除输入数据所占用存储空间之外所需要的附加的存储空间的大小。

第二章线性表

1,线性结构是n个结点的有穷序列。(a1,a2,a3…..an)。注意:起始结点,终端结点,直接前趋,直接后继

2,线性结构的节本特征:若至少含有一个结点,则除起始结点没有直接前趋外其他结点都有唯一一个直接前驱,除终端结点没有直接后继外其他每个结点都有唯一一个直接后继。

3,线性表的逻辑结构是线性结构。表中所含结点个数为线性表的长度,若表长为0则称空表

4,线性表的基本操作:

Initate(L)初始化线性表L,

Length(L)求线性表L长度,Get(L,i)读取线性表L中的第i个数据元素,

Locate(L,x)在线性表L中查找值为x的数据元素的位置,

Insert(L,x,i)将值为x的数据插入到线性表L的第i位置,

Delete(L,i)从线性表L中删除第i个数据元素

5,顺序表:是线性表的顺序存储结构,即按照顺序存储方式构造的线性表的存储结构,顺序表的一个存储结点存储线性表的一个数据元素,所有存储结点按相应数据元素间的逻辑关系决定的次序依次排列。

6,顺序表的类型定义:

Const maxsize=顺序表容量//maxsize表示线性表中可容纳数据的个数

Typedef struct

{ datatype data[ maxsize ]; //data是数组,线性表的第1,2,3,…n个数据元素存入data[0], data[1],data[2]…. data[n-1]中Int last ; //last表示线性表的长度,maxsize表示

} sqList;

sqList L;

顺序表是用一维数组实现的线性表,数组下标是元素的相对地址,逻辑上相邻的元素存储在物理位置也相邻的单元中7,顺序表的插入算法

Void inset(sqlist L,datatype x,int i )

{ if (st = = maxsize )error (“表满”);

相关文档
最新文档