- 1、本文档共94页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算09赵威
第二章 线性表 本章基本内容: 线性表的逻辑结构定义和各种存储结构的描述方法, 在线性表的两类存储结构上如何实现基本运算。 学习要点: 1、了解线性表的逻辑结构特性是数据元素之间存在着 线性关系,在计算机中表示这种关系的不同方法 得到两类不同的存储结构。 2、熟练掌握这两类存储结构的描述方法,以及循环链表、 双向链表的特点等。 3、熟练掌握顺序表、线性链表实现的基本操作:如插入、删除等算法。 §2.1 线性表概念及基本操作 §2.2 线性表的顺序存储和实现 §2.3 线性表的链式存储和实现 2.3.1 线性链表 2.3.2 循环链表 2.3.3 双向链表 §2.1 线性表的概念 一、线性表的逻辑结构 线性表是n 个类型相同数据元素的有限序列, 通常记作(a1, a2, a3, …, an )。 例1、数学中的数列(11,13,15,17,19,21) 例2、英文字母表(A, B, C, D, E? Z )。 例3、某单位的电话号码簿。 §2.2 线性表的顺序存储和实现 一、线性表的顺序存储结构——顺序表 1、线性表的顺序存储结构 2、顺序表的类型定义 二、顺序表的基本操作算法 三、利用基本操作实现线性表的其他操作 改写算法2.3为C语言: main( ) {SqList *Lp; Lp=(Sqlist *)malloc(sizeof(SqList)); InitList_Sq(Lp); …… } InitList_Sq(SqList *L) { L-elem =(int *)malloc(LIST_INIT_SIZE*sizeof(int)); if(!L-elem)exit(OVERFLOW); L-Length = 0; L-Listsize = LIST_INIT_SIZE; return OK; } §2.3 线性表的链式存储和实现 §2.3.1 线性链表 单链表插入操作 线性链表小结 §2.3.2 循环链表 §2.3.3 双向链表 第二章 线性表小结 内容: 顺序存储结构——顺序表 链式存储结构——线性链表、循环链表、双向链表 掌握: 在这两种存储结构下如何实现线性表的基本操作。 目标: 通过数据结构课程的学习,很好地理解各种存储结构是如何存储和表达数据对象的有关信息,以及各种存储结构下操作的特点。 取元素操作算法: Status GetElem_L(LinkList L, int i, ElemType e){ //L为带头结点的单链表的头指针。 //当第i个元素存在时,其值赋给e并返回OK,否则返回ERROR p=L-next; j=1; //初始化,p指向首元结点,j为计数器 while(p ji){ //顺指针向后查找,直到p指向第i个元素或p为空 p=p-next; ++j; } if (!p||ji) return ERROR; //第i个元素不存在 e = p-data; //取第i个元素 return OK; } //GetElem_L 算法 2.8 3、插入操作 ListInsert_L(LinkList L, int i, ElemType e) 功能:在线性链表L的第i个元素结点之前插入一个新元素结点; 插入操作图示: 插入前 插入后 ai-1 ai a2 a1 ai+1 n an L ai-1 ai a2 a1 ai+1 n an e L a b H d c d c c d c d 插入操作主要步骤:1)查找链表L的第 i-1个元素结点;2)为新元素建立结点;3)修改第 i-1个元素结点的指针和新元素结点指针完成插入; 插入操作算法:Status ListInsert_L(LinkList L, int i, ElemType e){ //在带头结点的线性链表L中第i个元素结点之前插入元素e p=L; j=0 while (p ji-1){p = p-next; ++j;} //寻找第i-1个元素结点 if(!p||jj-1) return ERROR; // i小于1或者大于表长 s=(LinkList) malloc (sizeof(LNode)
您可能关注的文档
- 第二章基因工程常用技术.ppt
- 二次函数y=a(x+h)2的图象.doc
- 第五章电流表.ppt
- 文明创建服务标准机制.doc
- 对俄电商网站模板开发需求.doc
- 工程数学补考试卷.doc
- 优秀人才申报表.doc
- 2012海淀英语中考一模试卷.doc
- 2009广告制作要求与指导.doc
- 追寻语文的魅力.doc
- 2024-2025学年揭阳职业技术学院《形势与政策》期末考试考试黑钻押题【重点】附答案详解.docx
- 2024-2025学年遵义师范学院电视播音主持期末考试复习提分资料含完整答案详解(全国通用).docx
- 2024-2025学年度浙江艺术职业学院《形势与政策》期末考试考试黑钻押题及答案详解(精选题).docx
- 2024-2025学年度浙江农林大学暨阳学院《形势与政策》期末考试考试历年机考真题集附答案详解【黄金.docx
- 2025年石家庄职业技术学院《形势与政策》期末考试试题及参考答案详解(巩固).docx
- 2025武威职业学院《形势与政策》期末考试模拟题库【网校专用】附答案详解.docx
- 2025年云南能源职业技术学院《形势与政策》期末考试考试历年机考真题集及参考答案详解(轻巧夺冠).docx
- 河南工业和信息化职业学院《形势与政策》期末考试高频难、易错点题及完整答案详解(名校卷).docx
- 2025年浙江纺织服装职业技术学院《形势与政策》期末考试题库检测试题打印含答案详解【完整版】.docx
- 2025江西财经职业学院电视播音主持期末考试考试黑钻押题【考点精练】附答案详解.docx
文档评论(0)