数据结构课程的内容41.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程的内容41

数据结构课程的内容; 一、教学内容: 1、线性表的定义和性质及基本运算; 2、线性表的顺序存储结构 3、线性表的链式存储结构 4、多项式的代数运算;第二章 线性表;第二章 线性表;(a1, a2, … ai-1,ai, a i+1 ,…, an) ;例 分析26 个英文字母组成的英文表;2.1 线性表的类型定义;线性表的抽象数据类型的定义: 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) 操作结果:构造一个空的线性表L DestroyList(l) 初始条件:线性表已存在 操作结果:销毁线性表L ; ClearList(l) ??????? 初始条件:线性表已存在 ??????? 操作结果:置线性表L为空表 ??????? ListEmpty(L) ??????? 初始条件:线性表已存在 ??????? 操作结果:若线性表L为空表,则返回TRUE,否则返回FALSE ??????? ListLenght(L) ??????? 初始条件:线性表已存在 ??????? 操作结果:返回线性表L数据元素个数 ??????? GetElem(L,i,e) ??????? 初始条件:线性表已存在(1≤i≤ListLenght(L)) ??????? 操作结果:用e返回线性表L中第i个数据元素的值;????????locatElem(L,e,comare()) ??????? 初始条件:线性表已存在,comare()是数据元素判定函数 ??????? 操作结果:返回线性表L中第1个与e满足关系comare()的数据元素的位序 ??????? PriorElem(L,cur_e,pre_e) ??????? 初始条件:线性表已存在 ??????? 操作结果:若cur_e是线性表L的数据元素,且不是第一个,则用pre_e返回它的前驱,否则操作失败,pre_e无定义 ??????? NextElem(L,cur_e,) ??????? 初始条件:线性表已存在 ??????? 操作结果:若cur_e是线性表L的数据元素,且不是第最后一个,则用next_e返回它的后继,否则操作失败,next_e无定义; ListInsert(L,i,e) ??????? 初始条件:线性表已存在(1≤i≤ListLenght(L)+1) ??????? 操作结果:在线性表L中第i个数据元素之前插入新元素e,L长度加1 ??????? ListDelete(L,i,e) ??????? 初始条件:线性表已存在(1≤i≤ListLenght(L)) ??????? 操作结果:删除线性表L中第i个数据元素,用e返回其值,L长度减1 ??????? ListTraverse(L,visit()) ??????? 初始条件:线性表已存在 ??????? 操作结果:依次对线性表L的每个数据元素调用visit()函数,一旦visit()失败,则操作失败 ??????? }ADT List;2.1 线性表的类型定义;算法细化后得到下列三步操作:;最后用类C语言描述为:;例2-2 ;算法描述为:;例2-3 ;算法描述为:;有线性表LA和LB,其元素均按非递减有序排列,编写一个算法将它们合并成一个线性表LC,且LC的元素也是按非递减有序排列。 算法思路:依次扫描通过LA和LB的元素,比较当前的元素的值,将较小值的元素赋给LC,如此直到一个线性表扫描完毕,然后将未完的那个顺序表中余下部分赋给LC即可。LC的容量要能够容纳LA、LB两个线性表相加的长度。;算法描述 为:;2.2 线性表的顺序表示和实现;2.2 线性表的顺序表示和实现;线性表的顺序存储结构定义(静态);线性表的顺序存储结构定义(动态);顺序表基本运算的实现;2、插入 在线性表的第i个位置前插入一个元素;Status ListInsert_sq(SqList L, int i, Elemtype x) { if (i1||iL.length+1) return ERROR; if (L.length=L.listsize) return OVERFLOW; for(j=L.length;j=i;j--) L.elem[j]=L.elem[j-1]; L.elem[j]=x; L.length++; return(OK);

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档