- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chapt2 线性表(二)的
第二章 线性表;线性表(二);§4 链表;一、单链表;整个链表的存取必须从头指针开始进行,头指针指示链表中的首结点(第一个元素的存储映像)的存储位置,这里用Head表示;由于最后一个元素没有直接后继,最后一个结点的指针是NULL(指针为空),表示这是链表的结尾。
由于取得任意一个数据元素都必须从头指针出发寻找,所以单链表是非随机存储的存储结构。
这种单链表数据元素之间的逻辑关系是由结点中的指针指示的,只要确定头指针的位置,就可以确定链表中所有元素的位置。换句话说,单链表由头指针唯一确定。可以借助高级语言中的“指针”数据类型来描述线性链表。
链式结构的存储效率:
存储密度=结点数据信息所占存储空间 / 结点结构所占全部空间;带头结点单链表示意图;1、单链表内结点的配置
链表的内存空间动态配置,在程序运行过程中才向系统配置所需空间。
使用链表之前,先要定义出每一个结点的数据结构。
C语言中,结点的格式声明如下:
struct 结构名称
{
数据类型 数据变量;
数据类型 数据变量;
…….
struct 结构名称 *next;
};
typedef struct 结构名称 Node;//定义Node为使用上述结构的结点类型
typedef Node *link; //定义指向Node结点的指针类型
定义了上述结点,在程序中使用结点结构之前,需要声明新结点:
Link 变量名称; (一个具备Node类型的结点);程序运行中用到所声明结点时,还需要配置结点:
①向系统申请结点所需内存空间;
②为结点数据域赋值,并标记指针域。
例如,已定义一个名称为Student的结点,使用到这个结点时,还需利用malloc函数向系统要求配置内存空间。
Student = (Link)malloc(sizeof(Node));
内存配置成功,则为该结点返回一个指针;内存配置不成功时,返回NULL指针。
另外,调用malloc函数,还需在程序开头使用包含命令注明其头文件:#includestdlib.h
;结点空间配置成功则赋值:
①为结点的数据域赋值:
New-Data(结点结构中数据变量名) = 23;
若结点结构中定义了多个变量,则可逐一赋值。
如:New-Number = 23;
New-Name[i] = Dataname[i];
②为结点的指针域赋值:
New-Next = NULL;
内存配置成功,且为结点赋值之后结构如下:(若新结点为New)
New
; 单链表类型定义也可如下表示(本教材定义方法):
在单链表中,假定每个结点类型用LinkList表示,它应包括存储元素的数据域,这里用 data 表示,其类型使用通用类型标识符ElemType 表示;还包括存储后继元素位置的指针域,这里用 next表示。则LinkList类型的定义如下:
typedef struct LNode /*定义单链表结点类型*/
{ ElemType data;
struct LNode *next; /*指向后继结点*/
} LinkList; /*定义单链表*/
定义了上述结点,在程序中使用结点结构之前,声明新结点:
LinkList *结点名称;
; 如,定义结点s:
LinkList *s ;
则配置(建立)新结点s的过程为:
s=(LinkList *)malloc(sizeof(LinkList));
s-data=a[i];
s-next=NULL;;2、单链表的建立
单链表的建立就是从首结点开始,将每个结点单向串联起来。
建立步骤:为每一个结点配置空间;为结点赋值;挂接结点。
(1)头插法
先声明一个头结点Head,为其配置空间;令Head-Next =NUL
您可能关注的文档
- B737简介的.doc
- B8、 弹性力学有限缘莫法基本原理(二).ppt
- Basic程序设计期末椎嫩合练习题二.doc
- Battery pack6511心的电图机的SOP.doc
- Bauhaus的.ppt
- bb平台会计3的.doc
- bec中级练习册的.doc
- bec高级范文的.doc
- Benjamin Franklin的.ppt
- BGA 封装工艺简介1的.ppt
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)