10.5.1 指针与链表_第1页
10.5.1 指针与链表_第2页
10.5.1 指针与链表_第3页
10.5.1 指针与链表_第4页
10.5.1 指针与链表_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、LOGOLOGO链表的定义、链表的操作(建立、输出、插入结点、删除结点)Teacher teaching designCONTENTS 目 录链表的定义链表的基本操作教学内容说明教学工作总结链表的定义PART 01链表是由若干个结点连接而成,且每个结点由两部分数据组成:一部分数据域,另一部分是指针域。链表的组成链表中结点的数据类型通常是结构体类型,其中有一个特殊的成员,即指向相同结构体类型数据的指针变量。这个指针成员指向下一个结点,这样才能建立起构成链表的数据结构基础。数据类型链表是可以进行动态存储分配的一种非连续、非顺序的存储的数据结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现。定义

2、各个结点可以不连续地存放,只需由前一个结点提供下一个结点的地址,就可顺着链表一一访问各个结点。存储链表的定义struct数据类型 成员1;数据类型成员2;.数据类型 成员3;struct*;链表结点的类型定义链表的定义链表有一个特殊的指针“头指针”,头结点head,指向链表在内存的首地址。链表中的每一个结点的数据类型为结构体类型,结点有两个成员:数据成员(实际需要保存的数据)和指向下一个结构体类型结点的指针即下一个结点的地址(事实上,此链表是用于存放整型数据的动态数组)。链表的尾结点称为“表尾”,表示无后续结点,其指针域为空,写作为NULL。说明链表的结构举例链表的操作PART 02分配存储空

3、间赋值入链123链表的操作4出链在生成链表中的结点时,首先需要申请存放结点的内存空间,准备存放结点中各成员的值。调用形式: (类型说明符*) malloc (size)功能:在内存的动态存储区中分配一块长度为size 字节的连续区域。函数的返回值为该区域的首地址。 “类型说明符”表示把该区域用于何种数据类型。(类型说明符*)表示把返回值强制转换为该类型指针。“size”是一个无符号数。分配内存空间函数malloc分配存储空间调用形式: (类型说明符*)calloc(n,size)分配内存空间函数 calloc功能:在内存动态存储区中分配n块长度为“size”字节的连续区域。函数的返回值为该区域

4、的首地址。(类型说明符*)用于强制类型转换。calloc函数与malloc 函数的区别仅在于一次可以分配n块区域分配存储空间ps=(struet stu*) calloc(2,sizeof (struct stu); calloc举例2其中的sizeof(struct stu)是求stu的结构长度。因此该语句的意思是:按stu的长度分配2块连续区域,强制转换为stu类型,并把其首地址赋予指针变量ps。表示分配100个字节的内存空间,并强制转换为字符数组类型, 函数的返回值为指向该字符数组的指针, 把该指针赋予指针变量pc。 pc=(char *) malloc (100); malloc举例1

5、分配存储空间调用形式: free(void*ptr);释放内存空间函数free功能:释放ptr所指向的一块内存空间,ptr 是一个任意类型的指针变量,它指向被释放区域的首地址。被释放区应是由malloc或calloc函数所分配的区域:分配存储空间main()struct stu int num;char *name;char sex;float score; *ps;ps=(struct stu*)malloc(sizeof(struct stu);ps-num=102;ps-name=Zhang ping;ps-sex=M;ps-score=62.5;printf(Number=%dnNam

6、e=%sn,ps-num,ps-name);printf(Sex=%cnScore=%fn,ps-sex,ps-score);free(ps);分配一块区域,输入一个学生数据。例题感知分配存储空间整个程序包含了申请内存空间、使用内存空间、释放内存空间三个步骤,实现存储空间的动态分配。赋值的规则与结构体变量赋值相同。(*).或-引用结点成员的形式对结点赋值就是对新结点中的各个成员赋值,用赋值语句或输入函数进行赋值赋值先把后一个结点的地址从前一个结点的节点指针成员中取出,赋值到新节点的指针成员中,让新结点指向后一个结点;然后把新结点的地址赋值给前一个结点的指针成员中,让前一个结点指向新结点。入链方法先从b结点的指针成员中,得到c的地址,赋值给d结点的指针成员;再把d指针成员赋值给结点b的指针成员解析需要先确定入链结点的插入位置,插入点有一前一后两个结点。入链就是把结点连接到链表中入链把删除结点的后一个结点的地址送到前一个结点指针成员即可方法想删除结点b,则把结点b的指

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论