绪论知识要点与习题分析.pptVIP

  • 1
  • 0
  • 约5.08千字
  • 约 41页
  • 2020-03-14 发布于福建
  • 举报
LocateElem( L, e, compare( ) ) 初始条件:线性表L已存在,compare( )是元素判定函数。 操作结果:返回L中第1个与e满足关系compare( )的元素的位序。若这样的元素不存在,则返回值为0。 ListTraverse(L, visit( )) 线性表遍历 初始条件:线性表L已存在。 操作结果:依次对L的每个元素调用函数visit( )。一旦visit( )失败,则操作失败。 ClearList( L ) 初始条件:线性表L已存在。 操作结果:将L重置为空表。 PutElem( L, i, e ) 初始条件:线性表L已存在,1≤i≤LengthList(L) 操作结果:L中第i个元素赋值同e的值。 ListInsert( L, i, e ) 初始条件:线性表L已存在,1≤i≤LengthList(L)+1 操作结果:在L的第i个元素之前(即第i个位置)插入一新元素e,L的长度增1。 ListDelete(L, i, e) 初始条件:线性表L已存在且非空,1≤i≤LengthList(L) 操作结果:删除L的第i个元素,并用e返回其值,L的长度减1。 } ADT List 第1章 绪论知识要点与习题分析 数据的有关概念:数据;数据项;数据元素;数据类型;抽象数据类型;数据表示;数据对象等要搞清楚。 数据结构的有关概念:数据结构(数据结构是指相互之间存在一种或多种特定关系的数据元素所组成的集合);数据逻辑结构;数据物理结构(存储结构)线性结构;非线性结构等。 抽象数据类型:是数据类型的引申,是由一组数据及施加其上的操作集合所形成的数据模板。简单地理解为:数据结构+操作集合。 抽象数据类型的引入优点:既可描述数据逻辑结构的说明和运算的定义,突出在某种关系的数据对象上做什么;又可描述计算机中如何存储数据和实现定义的运算,解决怎样做的问题。 逻辑结构与存储结构:从逻辑结构上来分,有集合结构、线性结构、树形结构和图形结构(网状结构)四种。从存储结构来分,有顺序存储、链式存储、索引存储和散列存储四种。 逻辑结构特点:集合中数据元素之间不存在关系,线性结构的数据元素之间存在一对一的线性关系,树形结构的数据元素之间存在一对多的非线性关系,图形结构的数据元素之间多对多的非线性关系。 存储结构:顺序存储结构:使用一片地址连续的存储单元依此存放逻辑上相邻的结点;相当于C语言中的一维数组存储;链式存储则是使用地址不一定连续的存储单元存放数据元素,但数据元素之间的逻辑关系用指针来表示。 算法:是对特定问题求解步骤的一种描述;它是指令的有限序列,其中一条指令表示一个或者多个操作。 算法的基本特征:有穷性,确定性,可行性,输入性和输出性。 算法的设计要求:正确性,易读性、健壮性、时空效率。 算法的有关概念 时间复杂度计算 方法: 事后统计法和事前分析估算法; 计算思想:语句频度:语句的重复执行次数称为语句频度,记作f(n),也称之为时间频度。 时间复杂度,记作T(n):T(n)=O(f(n)) 空间复杂度:算法对存储空间的占用度量。 典型例题分析 例1 设有如图所示的数据逻辑结构图,试给出其数据结构表示。 a b d c e f 解:数据结构定义S=(K,R),其中: K={a,b,c,d,e,f} R={(a,b),(b,e),(a,d),(d,c),(c,e),(c,f),(d,f)} 例2 设数据结构S=(K,R),K={k1,k2,k3,…… ,k9} R={k1,k2,k1,k3,k3,k4,k3,k6, k6,k8,k4,k5, k6,k7, k8,k9} 画出这个逻辑结构的图示,并确定哪些结点为开始结点?哪些是终端结点?解释S是什么结构? k2 k6 k3 k5 k8 k7 k4 k1 k9 解:k1为开始结点(无前驱), k2,k9,k7,k5为终端结点(无后继),S为树形结构。 算法典型题分析: 例1 讨论矩阵相乘算法的时间复杂度 nxn矩阵相乘算法的为: for (i=1;i=n;++i) for(j=1;j=n;++j) { c[i][j]=0; for(k=1;k=n;++k) c[i][j]+=a[i][k]*b[k][j]; //注意:这个语句为基本语句 } 因为基本语句的重复执行次数为n3,即频度f(n)=n3,所以有算法时间复杂度为: T(n)=O(n3) //即时间的增长率与语句频度n3增长率相同. 例2 判断下列算法的时间复杂度 int s=0; for (i=1;i=n;++i) for(j=1;j=m;++j)

文档评论(0)

1亿VIP精品文档

相关文档