- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
线性链表 西安交通大学计教中心 ctec.xjtu.edu.cn 单链表的概念 采用链式存储结构的线性表有单链表、双向链表、单循环链表以及双向循环链表等多种形式。 单链表用一组地址任意的存储单元存放线性表中的数据元素。由于逻辑上相邻的元素其物理位置不一定相邻,为了建立元素间的逻辑关系,需要在线性表的每个元素中附加其后继元素的地址信息。 这种地址信息称为指针。附加了其他元素指针的数据元素称为结点。 结点定义 结点包含数据域和指针域,结点结构可描述为: 其中data域用来存放结点本身信息,类型由具体问题而定,本节也将其设定为ElemType类型,表示某一种具体的已知类型,next域存放下一个元素地址。 带头结点单链表的逻辑结构 带头结点单链表的存储结构 结点的c++描述 typedef struct LNode { ElemType data; //数据域,ElemType代 //表某种数据类型 struct LNode *next; // 指针域 } *LinkList; 这个定义是自引用类型的。换言之,每个结点都包含另一个同类型结点的地址。 单链表的类形式定义如下: class LinkList{ public: LNode *head; //定义头指针 LinkList() { //构造函数 head=new LNode; //建立头结点 head-next=NULL; //头结点的指针为空 } int ListSize(); //求单链表长度 //返回表中指定序号结点的指针 LNode* GetElemPointer(int pos); ( 接下一页 …...) ( 接上页 ) //向单链表第i个位置插入元素x void InsertList(int i, ElemType x); //从单链表中删除第i个结点 LNode* LinkList::DeleteList( int i); //在单链表中查找数据值为x的结点 LNode* Find( ElemType x ); }; 这里将构造函数的实现直接放在了类定义中。如果要定义一个不带头结点的单链表,则只需定义空的头指针,即head=NULL。 指针操作 假如p为指向某一结点的指针,则该结点的数据域用p-data表示,该结点的指针域用 p-next表示。它们都是变量,可以被赋值,也可向其他变量赋值。 例如: 假定data为整型变量,则 p-data=5; p-next=NULL; 将结点变为: p=p-next 指针p向后移动一个结点 常用算法 (1)求单链表的长度 单链表长度不定,要确定链表长度需要走遍表中所有结点才能算出。 int LinkList::ListSize() { LNode *p=head-next; //p指向第一个元素所在结点 int len=0; while( p!=NULL ) { //逐个检测p结点存在与否 len++; p=p-next; //指针后移 } return len; } 为了保持头指针不变,使用了指针p在链表中移动。 (2)返回单链表中指定序号的结点的指针 LNode* LinkList::GetElemPointer(int pos) { if(pos0) { return NULL; } //该位置不存在 else if(pos==0) { return head; } else { LNode *p=head-next; //p为首元结点指针 int k=1; while( p!=head kpos ) { p=p-next; k++; } if(k==posp!=head) return p; //返回第pos个结点指针 else return NULL; //该位置不存在 } } (3)从单链表中删除第i个结点 为了从单链表中删除第i个结点,需进行如下操作: ①若第i个结点存在则找到第i和第i-1个结点的指针p和q ②通过语句q-next=p-next将第i-1个结点的指针域赋值为第i+1个结点的指针,将第i个结点从链表中断开。 ③ 释放第i个结点所占空间以便于重用。 LNode* LinkList::DeleteList(
您可能关注的文档
- 西安建筑科技大学人文学院刑法学总论课件第九章 正当行为.ppt
- 西安建筑科技大学人文学院刑法学总论课件第六章 犯罪客观方面.ppt
- 西安建筑科技大学人文学院刑法学总论课件第七章 犯罪主体.ppt
- 西安建筑科技大学人文学院刑法学总论课件第三章 刑法的效力范围.ppt
- 西安建筑科技大学人文学院刑法学总论课件第十八章 数罪并罚.ppt
- 西安建筑科技大学人文学院刑法学总论课件第十二章 罪数形态.ppt
- 西安建筑科技大学人文学院刑法学总论课件第十九章 缓刑、减刑和假释.ppt
- 西安建筑科技大学人文学院刑法学总论课件第十六章 量刑.ppt
- 西安建筑科技大学人文学院刑法学总论课件第十七章 量刑制度.ppt
- 西安建筑科技大学人文学院刑法学总论课件第十三章 刑事责任.ppt
- 西安交通大学计算机教学实验中心软件开发技术基础课件第一讲 软件开发方法(一).ppt
- 西安交通大学计算机网络基础课件第八章 网络互联与广域网技术.ppt
- 西安交通大学计算机网络基础课件第二章 数据通信的基础知识.ppt
- 西安交通大学计算机网络基础课件第九章 网络设备.ppt
- 西安交通大学计算机网络基础课件第六章 计算机局域网络.ppt
- 西安交通大学计算机网络基础课件第七章 因特网的重要协议.ppt
- 西安交通大学计算机网络基础课件第三章 因特网的发展和体系结构.ppt
- 西安交通大学计算机网络基础课件第四章 因特网的主要服务功能.ppt
- 西安交通大学计算机网络基础课件第五章 网络操作系统.ppt
- 西安交通大学计算机网络基础课件第一章 引论.ppt
最近下载
- 学堂在线 实用绳结技术 期末考试答案.docx VIP
- 风力发电技术的发展现状和未来发展趋势.pptx VIP
- 医疗行业数据脱敏技术方案.docx VIP
- 新译林九年级上Unit 4 精选短语和词汇(预习+复习+默写)2024-2024学年牛津版英语九年级上册.docx VIP
- DB14T 3225-2025煤矸石生态回填环境保护技术规范.docx VIP
- 精品解析:辽宁省沈阳市第四十三中学2024-2025学年八年级上学期期中考试 数学试题(原卷版).docx VIP
- 中医内科学中风(共42张PPT).pptx VIP
- 探究与实践++湖泊生态环境治理与保护+课件-2025-2026学年八年级地理上学期湘教版(2024).pptx VIP
- 医疗器械经营质量管理制度及工作程序.docx VIP
- 额定电压110 kV(Um=126 kV)交联聚乙烯绝缘电力电缆及其附件 第1部分:试验方法和要求.pdf VIP
文档评论(0)