网站大量收购独家精品文档,联系QQ:2885784924

ch02 Linear lists.ppt

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

* 小结 单链表上的删除运算(删除第i个元素) ③ p ① q ② 基本操作对应语句: ① p = L; k = 0; while (p k i-1) { p = p-next; ++ k; } ② q = p-next; ③ p-next = q-next; ④ e = q-data; free(q); 特别注意:   修改指针的语句次序一定要小心处理,否则会出现意想不到的错误。 a1 … ai an ^ … L ai-1 ai+1 ai ④ * 小结 单链表的建立方法 表头插入法建立单链表:元素输入次序的逆序 表尾插入法建立单链表:与元素输入次序一致 带头结点的单链表的优点 对空表和非空表的处理是统一的 对第一个元素结点的指针操作与表中其它元素结点的指针操作是一致的 循环单链表的优点 简化链表的某些操作 * 2.3.2 循环单链表和双向链表 双向链表的结点结构: Data next prior 双向链表的C语言描述: typedef struct DuLNode{ ElemType data; struct DuLNode *prior; struct DuLNode *next; } DuLNode, *DulinkList; 双向链表   线性表:(a1,a2,…,ai,…,an) head a1 ∧ a2 an-1 an ai … ∧ 双向链表示意图 … * head ∧ ai-1 ai+1 an ai … ∧ … a1 2.3.2 循环单链表和双向链表 双向链表上的插入操作(将元素e插入到链表的第i个结点前) 基本步骤: (1) 定位指针p指向结点ai-1 ; p e s (2) 建立新结点s并赋e ; (3) 修改s的next指针域指向p下一结点:s-next = p-next; (5) 修改p的next指针域指向s结点:p-next = s; (6) 修改s下一结点的prior指针域指向s:s-next-prior = s; (4) 修改s的prior指针域指向p结点:s-prior = p; 问题:①修改指针的步骤是否可随意?②不带头结点? * 2.3.2 循环单链表和双向链表 双向链表上的删除操作(删除第i个结点) head   ∧ ai-1 ai+1 an ai … ∧ … a1 ∧ 基本步骤: (1) 定位指针p指向结点ai; p (2) 修改p的前一结点的next指针域指向p下一结点: p-prior-next = p-next; (3) 修改p的下一结点的prior指针域指向p前一结点: p -next -prior = p-prior; (3) 释放结点p。 * 2.3.2 循环单链表和双向链表 双向链表上的删除操作(删除第i个结点) p 基本步骤: (1) 定位指针p指向结点ai; (2) 修改p的前一结点的next指针域指向p下一结点: p-prior-next = p-next; (3) 修改p的下一结点的prior指针域指向p前一结点: p -next -prior= p-prior; (4) 释放结点p。 head   ∧ ai-1 ai+1 an … ∧ … a1 ∧ * 2.3.2 循环单链表和双向链表 双向循环链表 head 带头结点的空双向循环链表 head ^ a1 an-1 an ai … ^ … 带头结点的非空双向循环链表 * 2.4 一元多项式的表示及相加 一元多项式的形式: A(x) = p0+p1x+p2x2+ … +pixi+ … + pnxn 存储形式 (a) 顺序存储pi p0 p1 ... p2 pn ... pi … … Head (b) 单链表方式存储pi p0 p1 pi pn ^ 问题:各存储方式的优缺点和使用场合? Head (c) 单链表方式存储pi和 i p1 1 p2 2 … pi i … pn ^ n * 2.4 一元多项式的表示及相加 例 A(x) = 7 + 3x + 9x8 + 5x17 - 8x100 B(x) = 8x + 22x7 - 9x8 C(x) = A(x)+ B(x) = 7 + 11x + 22x7 + 5x17- 8x100 存储方式的选择--以单链表存储多项式系数和指数 + headA 7 0 3 1 9 8 5 17 -8 ^ 100 headB 8 1 22 7 -9 ^ 8 //-------

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档