版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四、线性表的链式存储采用链式存储结构,有利于线性表的插入、删除操作,每个结点中只有一个“链”时,称为单链表,每个结点中有两个“链”时,称为双向链表。“链”通常用指针来表示,线性表的链式存储结构也是实现复杂数据结构的基础。12图1.2单链表结点和单链表示例4.1单链表的概念一般结点类型定义如下:structNode{
DataElemdata;
structNode*next;};structNode*p,*q;//声明指针型变量p、q3特别需要注意指针变量p和p所指结点的区别。指针变量p和p所指结点是独立存在的当p是空指针时,禁止通过空指针访问结点内数据域或指针域通过非空指针变量p可访问结点的数据域p->data和指针域p->nextp->data和p->next既可作为右值、又可作为左值出现在表达式中。右值和左值是表达式中语法单位,意味着可出现在赋值运算符右边和左边p->next还是一个指针,只要它非空,可以继续通过它访问所指结点的数据域和指针域,如p->next->data和p->next->next指针变量p未初始化时,不可访问p->next或p->data,否则,可能造成程序崩溃C/C++语言中,动态分配的结点必须释放,否则造成内存泄漏4常见的指针操作效果示意图p=(structNode*)malloc(sizeof(structNode));p->data=20;p->next=NULL;20^pq=p;?20qpq=p->next;qp………20…操作前操作后操作?p?qp…2030…qp…2030…(待续)
p=p->next;p…2030…p…2030…q->next=p;q…2030…q…2030…p15p15操作前操作后操作(待续)q->next=p->next;q…2030…q…2030…p10p106…6…操作前操作后操作线性表中插入元素时,需要在链表中增加结点,用下述语句动态分配:p=(structNode*)malloc(sizeof(structNode));动态分配失败时,返回空指针(NULL),现代面向对象程序设计语言中,如C++,一般按异常处理。下列语句完成将p所指结点插入q所指结点后:p->next=q->next;//p后继结点设为原q后继结点q->next=p;//q后继结点设为p下列语句删除p所指结点后继结点:q=p->next;//保存后继结点指针p->next=q->next;//链
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店服务话术指南
- 竞走培训课件
- 公路查验流程培训课件
- 公路勘察设计培训课件
- 2025年吉林省珲春市法官检察官遴选试题及答案
- 公益安全培训课件
- 公文培训案例
- 公文写作能力培训课件
- 《化工单元操作技术》课件-分析精馏本质
- 无烟单位创建培训课件
- 物理试卷-云南师大附中2026届高三1月高考适应性月考卷(六)
- 教育培训加盟合同协议
- 影视立项转让合同范本
- DZ∕T 0399-2022 矿山资源储量管理规范(正式版)
- 麻风病防治知识课件整理
- 消防工程监理实施细则
- 安全安全应急救援预案(沟槽开挖)
- 权利的游戏双语剧本-第Ⅰ季
- 卫生部《臭氧消毒技术规范》
- 早期复极综合征的再认识
- 山西某2×150MW循环流化床空冷机组施工组织设计方案
评论
0/150
提交评论