- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
南京邮电大学计算机学院教案用纸
课程: 数据结构B 主讲教师:邹志强 教材:数据结构——使用C++语言描述
讲授题目 第2章 线性表 教学目的 理解线性表ADT 掌握线性表的顺序和链接表示方法, 熟练掌握线性表插入、删除和查找元素的算法 掌握使用大O记号表示线性表运算的渐近时间复杂度的方法 掌握使用线性表求解一元多项式的算术运算问题的方法 重点及难点 重点: 线性表的顺序和链接表示 在顺序表和单链表上实现线性表运算 顺序和链接表示的优缺点 难点: 多项式的算术运算 主要教学方法 课内讲授,课外作业、答疑 上机实验 课外复习:面向对象程序设计方法 课外自学:第12章 实习指导 教学手段 (1)多媒体课件 (2)《数据结构》网站的网络资源 教学过程学时分配 教 学 内 容 3 2.1 线性表ADT 2.2 线性表的顺序表示 2.3 线性表的链接表示 2 2.4 多项式的算术运算
南京邮电大学计算机学院教案用纸
课程: 数据结构B 主讲教师:邹志强 教材:数据结构——使用C++语言描述
理解线性表AD
线性表是n((0)个元素a0,a1,…,an-1 的有序集合,记为(a0,a1,…,an-1)
其中,n是线性表中元素的个数,称为线性表的长度,n=0 时称为空表。
设ai是线性表(a0,a1,…,an-1)中第i个元素,i=0, 1,…,n-1,则称 ai 是ai+1的直接前驱元素,ai+1是ai的直接后继元素。
线性表是动态数据结构,它的表长可以改变。
ADT 2.1 线性表抽象数据类型
ADT LinearList
{ Data:零个或多个元素的有序集合。
Operations:
Create(): 创建一个空线性表。
Destroy(): 撤消一个线性表。
IsEmpty():若线性表空,则返回true;否则返回false。
Length():返回表中元素个数。
Find(i,x):在x中返回表中下标为i的元素ai(即表中第i+1个元素)。
如果不存在,则返回false,否则返回true。
Search(x):返回x在表中的下标;若x不在表中,则返回-1。
Insert(i,x):在元素ai之后插入x。若i=-1,则x插在第一个元素a0前。
插入成功返回true,否则返回false。
Delete(i):删除元素ai。删除成功返回true,否则返回false。
Update(i,x):将元素ai的值修改为x。修改成功返回true,否则返回
false。
Output(out):把表送至输出流。
}
掌握线性表的顺序和链接表示方法,
若已知顺序表示的线性表中每个元素占k个存储单元,第一个元素a0在计算机内存中的地址是loc(a0) ,则表中任意一个元素ai在内存中的存储地址loc(ai)为
loc(ai)=loc(a0)+i*k
只要给定loc(a0)和k,就可以确定线性表中任意一个元素的存储地址,换句话说,顺序表是一种随机存取结构。
线性表的链接存储表示法
(1) 单链表
(2) 带表头结点的链表
(3) 循环链表
(4) 双向链表
南京邮电大学计算机学院教案用纸
课程: 数据结构B 主讲教师:邹志强 教材:数据结构——使用C++语言描述
熟练掌握线性表插入、删除和查找元素的算法
1) 查找下标为i的元素ai
templateclass T
bool SeqListT::Find(int i,T x) const
{
if (i0 || in-1)
{ coutOut of Boundsendl;
return false;
}
x=elements[i];
return true;
}
渐近时间复杂度:O(1)
查找元素ai的算法
templateclass T
bool SingleListT::Find(int i,T x)const
{ if (i0 || in-1 )
{ cout Out Of Bounds;
return false;
}
NodeT *p=first;
for (int j=0; ji; j++) p=p-link;
x=p-element;
return true;
}
渐近时间复
文档评论(0)