- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
????数据结构教程?第二课?抽象数据类型的表示与实现
数据结构教程?第二课?抽象数据类型的表示与实现
?
本课主题: 抽象数据类型的表示与实现
教学目的: 了解抽象数据类型的定义、表示和实现方法
教学重点: 抽象数据类型表示法、类C语言语法
教学难点: 抽象数据类型表示法
授课内容:
一、抽象数据类型定义(ADT)
作用:抽象数据类型可以使我们更容易描述现实世界。例:用线性表描述学生成绩表,用树或图描述遗传关系。
定义:一个数学模型以及定义在该模型上的一组操作。
关键:使用它的人可以只关心它的逻辑特征,不需要了解它的存储方式。定义它的人同样不必要关心它如何存储。
例:线性表这样的抽象数据类型,其数学模型是:数据元素的集合,该集合内的元素有这样的关系:除第一个和最后一个外,每个元素有唯一的前趋和唯一的后继。可以有这样一些操作:插入一个元素、删除一个元素等。
抽象数据类型分类 原子类型 值不可分解,如int 固定聚合类型 值由确定数目的成分按某种结构组成,如复数 可变聚合类型 值的成分数目不确定如学生基本情况 抽象数据类型表示法:
一、
三元组表示:(D,S,P)
其中D是数据对象,S是D上的关系集,P是对D的基本操作集。
二、书中的定义格式:
ADT 抽象数据类型名{
数据对象:数据对象的定义
数据关系:数据关系的定义
基本操作:基本操作的定义
}ADT 抽象数据类型名
例:线性表的表示
名称 线性表 ? 数据对象 D={ai| ai(-ElemSet,i=1,2,...,n,n=0} 任意数据元素的集合 数据关系 R1={ai-1,ai| ai-1,ai(- D,i=2,...,n} 除第一个和最后一个外,每个元素有唯一的直接前趋和唯一的直接后继 基本操作 ListInsert(L,i,e) L为线性表,i为位置,e为数据元素。 ListDelete(L,i,e) ... 二、类C语言语法
类C语言语法示例 1、预定义常量和类型 #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef in Status; //Status是函数的类型,其值是函数结果状态代码。 2、数据结构的存储结构 typedef ElemType first; 3、基本操作的算法 函数类型 函数名(函数参数表){//算法说明语句序列}//函数名 4、赋值语句 简单赋值: 变量名=表达式; 串联赋值: 变量名1=变量名2=...=变量名k=表达式; 成组赋值: (变量名1,...,变量名k)=(表达式1,...,表达式k);结构名=结构名;结构名=(值1,...,值k);变量名[]=表达式;变量名[起始下标..终止下标]=变量名[起始下标..终止下标]; 交换赋值: 变量名--变量名; 条件赋值: 变量名=条件表达式?表达式?表达式T:表达式F 5、选择语句 1、if(表达式) 语句;2、if(表达式) 语句;else 语句;3、switch(表达式){case 值1:语句序列1;break;
...case 值n:语句序列n;break; default:语句序列n+1;break; }4、switch{case 条件1:语句序列1;break;
...case 条件n:语句序列n;break; default:语句序列n+1;break; } 6、循环语句 for(赋初值表达式;条件;修改表达式序列)语句;while(条件)语句;do{ 语句序列}while(条件); 7、结束语句 return [表达式];return; //函数结束语句break; //case结束语句exit(异常代码); //异常结束语句 8、输入和输出语句 scanf([格式串],变量1,...,变量n); 9、注释 //文字序列 10、基本函数 max(表达式1,...,表达式n)min,abs,floor,ceil,eof,eoln 11、逻辑运算 与运算;||或运算 例:线性表的实现:ADT List{
数据对象: D={ai| ai(-ElemSet,i=1,2,...,n,n=0}
数据关系: R1={ai-1,ai| ai-1,ai(- D,i=2,...,n}
基本操作:
InitList(L)DestroyList(L)ListInsert(L,i,e)ListDelete(L,i,e)
}ADT List
ListInsert(List L,int
文档评论(0)