- 1、本文档共81页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构第2章课件(线性表)
4、算法的时间需求 2.4 一元多项式的表示和相加 2.4 一元多项式的表示和相加 2.4 一元多项式的表示和相加 2.4 一元多项式的表示和相加 第2章 学习要点 第2章 练习 第2章 练习 typedef struct node { datatype element; struct node *prior,*next;} JD; L 空双向循环链表: 非空双向循环链表: L A B b c a p p-prior-next = p = p-next-proir 双向链表(double linked list)结点定义 prior element next element 在双向链表中,有些操作如:ListLength、GetElem和LocateElem等仅需要涉及一个方向的指针,则它们的算法描述和线性链表的操作相同, 但在插入和删除操作时有很大的不同,在双向链表中插入和删除必须同时修改两个方向上的指针。两个算法的时间复杂度均为O(n)。 2.3.3 双向链表 x s b a p (1)插入 void sxlbcr(JD *p , int x) { JD *s; s=(JD *) malloc (sizeof(JD)); s-data=x; s-prior=p-prior; //1步 p-prior-next=s; //2步 s-next=p; //3步 p-prior=s; //4步 } b c a P (2)删除 p-prior-next=p-next; p-next-prior=p-prior; void deletenode(JD *p) { p–prior–next=p–next; p–next–prior=p–prior; free(p); } 从本节的讨论中可见:由于链表在空间的合理利用上和插入、删除时不需要移动等优点,因此在很多场合下,它是线性表的首选存储结构。 然而它也存在着实现某些基本操作如求线性表长度时不如顺序存储结构的缺点; 为此,可从实际应用角度出发重新定义线性链表及其基本操作(见P37~39)。 另一方面,由于在链表中,节点之间的关系用指针来表示,则数据元素在线性表中的“位序”的概念已淡化,而被数据元素在线性表链表中的“位置”所代替。 多项式的运算问题,已经成为表处理的一个经典问题。通常一个多项式Pn(x)可按升幂写成: 它由n+1个系数唯一确定。在计算机里,它可用一个线性表P来表示: 每一项的指数i隐含在其系数pi的序号里。 假设Qm(x)是一元m次多项式,同样可用线性表Q来表示: 假设mn,则两个多项式相加的结果Rn(x)=Pn(x)+Qm(x)可用线性表R表示: 可以对P、Q和R采用顺序存储结构,使得多项式相加的算法定义十分简洁。 至此,一元多项式的表示及相加问题似乎已经解决。然而,在通常的应用中,多项式的次数可能很高且变化很大,使得顺序存储结构的最大长度很难确定。特别是在处理形如 的多项式时,就要用一长度为20001的线性表来表示,表中仅有3个非零元素。 这种对内存空间的浪费应当避免。 其中,pi是指数为ei的项的非零系数,且满足: 但是如果只存储非零系数项,显然必须同时存储相应的指数。一般情况下的一元n次多项式可写成: 假设L为LinkList型的变量,则L可为单链表的头指针,它指向表中第一个结点。 L 空表 ^ 有时,我们在单链表的第一个结点之前附设一个结点,称之为头结点。头结点的数据可以不存储任何信息,也可以存储如线性表的长度等类的附加信息。头结点的指针域存储指向第一个结点的指针。 若L为“空”(L=NULL),则所表示的线性表为“空表”,其长度n为“零”。 L a1 a2 头结点 an ^ …... 2.3.1 线性链表 data next p 结点(*p) 2.3.1 线性链表 *p 表示由指针所指向的节点 (*p).data?p-data 表示p所指向结点的数据域 (*p).next?p-next 表示p所指向结点的指针域 指针变量p(其值为结点地址)和结点变量*p之间的关系: h-data=1012 (h-next)-data=1145 p结点是指指针p所指向的结点(即其存储位置存放在p中的结点)。“.”是成员(分量)运算符,“-”指向运算符。 (*h).data=1012 h 1145 1248 2158 ^ ….
您可能关注的文档
- 教科版初三物理上册第六章第三节焦耳定律.ppt
- 教科版四上科学课件 1.2天气日历--PPT.ppt
- 教科版小学科学四年级下册观察、描述矿物(一)课件.ppt
- 教科版七下第二课第1框一滴水与大海(共43张PPT).ppt
- 教科版三年级科学上册第三单元第三课-比较韧性PPT(含课堂作业).ppt
- 教科版_11.1_杠杆(上课用).ppt
- 教程7广告和销售管理.ppt
- 教科版必修1第2章导学案.doc
- 教科版速度课件.ppt
- 教育思想与幼儿教育研究结题报告.doc
- 2026届高考数学总复习(第1轮)基础版第50讲 直线的方程.pptx
- 《关于组织开展能源领域氢能试点工作的通知》解读及对策.docx
- 二年级数学奇妙的动物世界跨学科项目化学习设计.docx
- 高一美术传承与创新中国近现代美术思政融合课教学设计.docx
- 2025年湖北省省直辖行政单位选调生考试(行政职业能力测验)综合能力测试题带答案.docx
- 2025年温州医科大学仁济学院单招语文测试模拟题库附答案.docx
- 2025年清远职业技术学院单招(语文)测试模拟题库附答案.docx
- 2025年湖北省咸宁市事业单位招聘考试(职业能力倾向测验)题库及答案1套.docx
- 2025年温州大学单招语文测试题库有答案.docx
- 2025年湖北省荆州市单招语文测试模拟题库a4版.docx
文档评论(0)