版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四、线性表的链式存储采用链式存储结构,有利于线性表的插入、删除操作,每个结点中只有一个“链”时,称为单链表,每个结点中有两个“链”时,称为双向链表。“链”通常用指针来表示,线性表的链式存储结构也是实现复杂数据结构的基础。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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年企业人力资源管理服务合同
- 2024年专项竞业限制及保密合同
- 2024年工业区建筑施工一体化协议
- 2024年家庭农场农产品销售合同
- 供热管网监测与维护合同
- 养老院疫情防控方案与老年人关怀
- 公益组织福利制度设计的挑战与机遇
- 金属制日用品制造行业的未来发展趋势
- 漆器工艺品品牌建设
- 完善中小学考试制度的策略与建议
- 农贸市场食品安全事故处置方案
- 六年级语文总复习课《修改病句》修改课件市公开课一等奖省赛课获奖课件
- (2024年)部队战备教育教案x
- 《焚烧烟气净化产物资源化利用 工业用盐》编制说明
- 《交互设计》课件
- 怀孕的hcg验血报告单
- 应力的概念讲解
- JF-2023-合同中小学校校外供餐合同示范文本
- 内镜中心考试题及答案
- 如何培养学生的思辨能力
- 统计学职业生涯规划
评论
0/150
提交评论