- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
线性表2.3
结点定义 * * 湖南理工学院信息与通信工程学院 数据结构 第二章 线性表 线性表的定义 线性表的顺序存储结构 线性表的链式存储结构 线性表的应用 2.3 线性表的链式存储结构 思考: 顺序存储结构有哪些优缺点? 逻辑上相连的内容物理上也相连 查找速度快 插入删除元素存在元素的移动,耗时,速度慢 有空间限制,当存取的元素个数多于顺序表的元素个数时,会发生溢出 线性链表与相关操作实现 链表(linked list)是一种由结点组成的数据结构每个结点都包含数据元素信息和指向链表中另一个结点的指针。 ZHAO QIAN SUN LI ZHOU WU ZHENG WANG ^ H 例 线性表 (ZHAO,QIAN,SUN,LI,ZHOU,WU,ZHENG,WANG) 43 13 1 NULL 37 7 19 25 数据域 指针域 LI QIAN SUN WANG WU ZHAO ZHENG ZHOU 存储地址 1 7 13 19 25 31 37 43 31 H 头指针 思考:如何表示 一个空表? 头指针为空, 即H = NULL 线性表链式存储结构的特点 用一组任意的存储单元存储线性表的数据元素 利用指针实现了用不相邻的存储单元存放逻辑上相 邻的元素 每个数据元素ai,除存储本身信息外,还需存储其直 接后继的信息 结点 数据域:元素本身信息 指针域:指示直接后继的存储位置 单链表 当一个链表中只含有指向它的后继结点的链接时,就称该链表为单链表。 struct Node { data; *next; }; ElemType struct Node typedef struct Node LNode; typedef struct Node *LinkedList; LNode *h,*p; data next p 结点(*p) 生成一个新结点: p=(LinkList) malloc ( sizeof ( LNode )); 系统回收p结点:free(p) 单链表的基本操作 单链表初始化就是建立一个空的链表。 /*不带头结点的单链表初始化*/ void LinkedListInit1(LinkedList L) { L = NULL; } 1.初始化 带附加表头结点的单链表 head 31 59 27 40 表头 表尾 ? 附加头 结点 /*带头结点的单链表初始化*/ LinkedList LinkedListInit2(LinkedList L) { L = (LNode *)malloc(sizeof(LNode)); if(L == NULL) { printf(申请空间失败!\n); exit(0); } L-next = NULL; printf(带头结点的线性链表初始化成功!\n); return L; } 单链表的基本操作 单链表求表长操作需要设定当前指针p和一个计数器j,初始时p指向链表中的第一个结点,当p每向下移动一个结点时,j就加1,直到p链表的尾部。 /*带头结点的单链表求表长*/ int LinkedListLength(LinkedList L) { LinkedList p; p = L-next; int j = 0; while(p != NULL) { j++; p = p-next; } return j; } 2.求表长操作 时间复杂度为O(n) 单链表的基本操作 单链表的插入操作就是在结点p之前插入一个新的结点q,该结点的数据域为e。 对于不带头结点的单链表,p的位置有所不同,插入操作有下面两种情况。 在链表的表头插入 在表头插入新的结点时,需要执行下面3个步骤。 (1) 创建了一个新的结点q。 (2) 将此新结点的数据域赋值为e,并将它的next指针指向第一个结点,即L。 (3) 将L修改为指向新的结点q。 在链表的中间插入 在链表的中间插入时,需要执行下面4个步骤。 (1) 创建了一个新的结点q。 (2) 将此新结点的数据域赋值为e,并将它的next指针指向p。 (3) 查找到p的前驱结点pre。 (4) 将pre的next指针指向新创建的结点q。 3.插入操作 LinkedList LinkedListInsert(LinkedList L,LinkedList p,ElemType e) { LNode *q = (LNode *)malloc(sizeof(L
您可能关注的文档
- 素描教案全.docx
- 素描四线处理.ppt
- 红桥区老旧楼房改造SBS沥青防水卷材专项施工方案.doc
- 红花刺槐育苗新技术.pptx
- 红楼梦入门级讲座第三讲:红楼烈女——鸳鸯尤三姐.ppt
- 紫光绅苑项目提案.ppt
- 红灯的约束与绿灯灯的自由冯媛媛.ppt
- 纬十一路涵洞施工方案--成形的.doc
- 纪念活动(广武京10天)4.ppt
- 纯钛铸造资料.doc
- 人教版英语5年级下册全册教学课件.pptx
- 部编人教版2年级上册语文全册教学课件含单元及专项复习.pptx
- 人教版8年级上册英语全册教学课件(2021年8月修订).pptx
- 教科版(2017版)6年级上册科学全册课件+课时练.pptx
- 人教版PEP版6年级英语下册全册教学课件(2022年12月修订).pptx
- 部编人教版2年级下册语文全册课件(2021年春修订).pptx
- 人教版数学6年级下册全册教学课件(2023年教材).pptx
- 湘少版5年级下册英语全册教学课件(2021年春修订).pptx
- 人教PEP4年级下册英语全册教学课件 [2}.pptx
- 人教版6年级上册英语全册教学课件.pptx
最近下载
- 2025年鹤壁职业技术学院单招职业倾向性测试题库完整版.docx VIP
- 以科技创新推动现代产业体系创新PPT课件(带内容).pptx
- 江苏红色文化-第五学习单元 江苏红色文化之“魂”:淮海战役精神-江苏开大复习资料.docx
- 2024年山东省临沂市中考生物试卷附参考答案.pdf VIP
- 优选课件:鲁教版 高中地理必修一第四单元环境与发展41交通运输与区域发展.ppt
- 科研管理科研项目评审专家岗面试真题题库参考答案和答题要点.docx VIP
- 1.3丙类谐振功率放大器技巧.ppt
- 2022半导体行业并购趋势报告-云岫资本.ppt
- 《建立良好人际关系》课件.pptx VIP
- 直线与直线垂直 教学课件.pptx
文档评论(0)