第2单元 线性表 (iii).pptVIP

第2单元 线性表 (iii).ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2单元 线性表 (iii)

Data Structure Chapter 2: Linear Table 第二章 线性表 《数据结构》 College of Science, Xidian University 第二章 线性表 (III) 西安电子科技大学·理学院 hjTang@xidian.edu.cn 课程内容 线性表的链式表示 单链表 循环链表 双循环链表 静态链表 线性链表的常用操作 插入 删除 与顺序表的比较 一元多项式 单链表 链式存储的概念 链式存储是指用一组任意的存储单元存储线性表的数据元素 这组存储单元专门利用一个或几个存储单元(称之为指针)来表示元素的前驱和后继的关系 一个数据+指针=结点(Node) N个结点通过指针(链)连接成一个链表,即线性表 单链表是指每个结点内只有一个指针的链表 指示链表第一个结点的指针称为头指针 线性链表的最后一个结点的指针赋值为“空”(NULL) 线性表的链式表示 链式表示的线性表的逻辑状态 空表、表长为1的链表的表示 无头结点的表示 有头结点的表示 线性表长度=1的无头结点的表示 线性表长度=1的有头结点的表示 为什么要多一个头结点 获得链表的元素 删除结点 插入结点 链表合并算法 循环链表 双向链表 单链表的缺点: 查找直接前驱慢 双向链表 双向循环链表 空表 L-next == L-prev; 双向链表的删除 双向链表的插入 错误方法的结果(1) 错误方法的结果(2) 静态链表 静态链表 静态链表 一元多项式的表示与运算 一元多项式的表示 链表表示 多项式的加法可能出现的情况 指数小于 指数大于 等于,但和不为0 等于,且和为0 完成后,Pb先到最后 完成后,Pa先到最后 * * Data Structure Chapter 2: Linear Table 43 ZHOU 25 37 ZHENG 19 31 ZHAO 7 25 WU 37 19 WANG null 13 SUN 1 7 QIAN 13 1 LI 43 存储地址 数据域 指针域 31 头指针 Li Qian Sun Wang Wu Zhao Zheng Zhou ZHAO QIAN SUN LI ZHOU WU ZHENG WANG ^ Head typedef struct _NODE { ElemType data; struct _NODE *next; } LNode, *LList; // typedef LNode *LList; data next Head NULL ^ Head ^ Head ^ Head ZHAO ^ Head ZHAO typedef struct _NODE { ElemType data; struct _NODE *next; } LNode, *LList; // typedef LNode *LList; void ClearList(LList L1) { // 释放所有空间的内容 L1 = NULL; } int main() { ...... ClearList(L); if (L == NULL) // 如果表已经为空 ...... } 判断失败 L != NULL L1 L ZHAO ^ ^ ? ^ L ZHAO L1 ^ OK Status GetElem_L(LList L, int i, ElemType *e) { LList p = L-next; while (p != NULL i-- 0) p = p-next; if (p == NULL) return ERROR; *e = p-data; return OK; } 0 1 2 3 4 5 ^ i=4 i=3 i=2 i=1 i=0 L 0 1 2 3 4 5 ^ L Status DeleteElem_L(LList L, int i, ElemType *e) { LList p=L, q = L-next; while (q != NULL i-- 0) // 找到第i个结点 {p = q; q = q-next;} // q总是p的直接前驱 if (q == NULL) return ERROR; *e = p-data; p-next = q-next; free(q); return OK; } p q 3 Status DeleteElem_L(LList L, int i, ElemType e) { LList p=L, q;

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档