- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构与算法-第2章 线性表
(习题集17页2.19)已知线性表中的元素(整数)以值递增有序排列,并以单链表作存储结构。试写一高效算法,删除表中所有大于mink且小于maxk的元素(若表中存在这样的元素),分析你的算法的时间复杂度(注意:mink和maxk是给定的两个参变量,它们的值为任意的整数)。 (习题集18页2.22)试以单链表为存储结构实现线性表的就地逆置算法,即在原表的存储空间将线性表(a1,a2...,an)逆置为(an,an-1,...,a1)。 (习题集19页2.31)假设有一个循环链表的长度大于1,且表中既无头结点也无头指针。已知s为指向链表某个结点的指针,试编写算法在链表中删除指针s所指结点的前趋结点。 (习题集19页2.33)已知有单链表表示的线性表中含有三类字符的数据元素(如字母字符、数字字符和其它字符),试编写算法来构造三个以循环链表表示的线性表,使每个表中只含同一类的字符,且利用原表中的结点空间作为这三个表的结点空间,头结点可另辟空间。 。 单链表习题 归并两个非递减有序的单链表的算法2.12 void MergeList _L ( LinkList La , LinkList Lb, LinkList Lc) { //已知单链表La和Lb 的元素按值非递减有序排列 //归并La和Lb得到新的单链表Lc,Lc的元素也按值非递减有序排列 pa = La->next; pb = Lb->next; Lc = pc = la; //用La的头结点作为Lc的头结点 while (pa pb) { if ( pa->data = pb->data) { pc->next = pa; pc = pa; pa = pa->next; } else { pc->next = pb; pc = pb; pb = pb->next; } } pc->next = pa ? pa : pb; //插入剩余段 free (Lb); //释放Lb的头结点 }//MergeList_L 静态链表―――借助一维数组来描述的线性链表 简介 其它类型的链表 单向循环链表 双向链表 双向循环链表 a1 a2 a3 ^ 头结点 首元结点 第二个 最后一个 单向循环链表 双向链表/双向循环链表 表中的结点有两个指针,其一指向直接前趋,另一指向其直接后继 //线性表的双向循环链表存储结构 typedef struct DuLNode { ElemType data; Struct DuLNode *prior; Struct DuLNode *next; }DuLNode, *DuLinkList; 算法 2.18在双向链表中第i个元素之前插入元素e Status ListInsert_DuL(DuLinkList L,int i,ElemType e){ //在带头结点的双链循环线性表L中第i个元素之前插入元素e //i的合法值为1≤i≤表长+1 If ( ! ( p = GetElemp_DuL(L,i))) return ERROR; //在L中确定第i个元素的位置指针,p=NULL即第i个元素不存在 If (!( s = (DuLinkList)malloc(sizeof(DuLNode))) return ERROR; s->data = e; s->prior = p->prior; //① p->prior->next = s; //② s->next = p; //③ p->prior = s; //④ return OK; }//ListInsert_DuL 算法 2.19删除双向链表中的第i个元素 Status ListDelete_DuL (DuLinkList L,int i,ElemType e){ //删除带头结点的双链循环线性表L的第i个元素, //i的合法值为1≤i≤表长 if (!( p = GetElemP_DuL(L,i))) //在L中确定第i个元素的位置指针 return ERROR; //p=NULL,即第i个元素不存在 e = p->data; p->prior->next = p->next; //① p->next->prior = p->prior; //② free(p); return OK; }//ListDelete_DuL 从实际出发重新定义线性链表及其基本操作 略 2.4节 一元多项式的表示及相加 略 ? 第2章 END 在组设置中可使用此模板作为演示培训材料的起始文件
您可能关注的文档
- 数据会说话:春秋航空和三大航经营模式的差异.docx
- 数学高考复习实效性.ppt
- 数据分析与建模实验报告.doc
- 教育电视系统教案.ppt
- 数据分析技术.ppt
- 数据分析实战技能培训-excel使用技能提高.doc
- 数据中心基础知识培训(第一章).pptx
- 数据处理及报告编写.ppt
- 数据分析与EXCEL应用(上).pptx
- 数据库1-1-intro.ppt
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
最近下载
- Zkteco中控智慧万傲瑞达V6000_2.0.0用户手册(停车CS岗亭端).pdf
- 2023-2024学年江苏省淮安市清江浦区三校八年级(上)期中数学试卷.doc VIP
- 要拿我当一挺机关枪使用.docx
- 母婴三病培训.pptx VIP
- 管理信息系统题目_带答案.doc
- 《汽车侧面气囊和帘式气囊模块性能要求GBT+38795-2020》详细解读.pdf
- 初中班主任工作经验交流精美PPT课件.ppt VIP
- 探放水工考试卷及答案 .docx
- 【申论】公务员考试辅导·笔试系统讲义(2025国考版).docx
- 2023-2024学年江苏省淮安市盱眙县八年级(上)期中检测英语试卷(附答案详解).pdf VIP
文档评论(0)