- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
下一个结点的地址。因此,head指向第一个元素;第一个元素指向第二个元素……直到最后一个元素,该元素不再指向其他元素,它称为表尾,它的地址部分放一个“NULL”(表示空地址),链表到此结束。(一)链表的实现1.结点定义结点包含数据域和指针域,结点结构可描述为:其中Data域用来存放结点本身信息,类型由具体问题而定,Next域存放下一个元素的地址。2.单链表的逻辑结构为了能顺次访问每个结点,需要保存单链表第一个结点的存储地址。这个地址称为单链表的头指针,用head表示。DateNext图8.1链表的逻辑结构3.在C语言中单链表结点类型可以定义为:structnode{intdata;/*数据域*/structnode*link;/*链域,是指向与结点类型完全相同的其他结点的指针*/};(二)链表的操作对链表施行的操作有以下几种:heada1a2a4a5a31.建立链表:是在确定了链表结点的结构之后给链表中的若干个结点输入数据。2.链表的输出:是将一个已经建立好的链表中各个结点的数据字段部分地或全部地输出。3.插入一个结点:是指将一个已知的结点插入到已经建立好的链表中。4.删除一个结点:是指从已经建立好的链表中按指定关键字段删除一个或多个结点。5.查找一个结点【案例8-5】建立一个带头结点的单链表,数据字段为整数,当输入的整数为0时,结束建立链表,并将链表的数据字段部分全部显示在屏幕上。#includestdio.hstructnode/*定义链表结点的结构*/{intnum;structnode*next;/*定义了一个指向node类型的结点的指针*/};main(){structnode*head;/*定义一个头结点*/structnode*create();voidprint(structnode*head);head=create();/*创建单链表*/print(head);/*输出单链表*/}structnode*create()/*创建单链表函数返回的是与节点相同类型的指针*/{structnode*head,*p1,*p2;p1=p2=(structnode*)malloc(sizeof(structnode));/*申请新节点*/head=NULL;/*创建一个空表*/scanf(%d,p1-num); /*输入节点的值*/p1-next=NULL; /*将新节点的指针置为空*/while(p1-num!=0) /*输入节点的数值不等于0,执行循环体*/{p1-next=NULL;/*将新结点的指针置为空*/if(head==NULL)head=p1;/*如果是空表,将结点插入表头*/elsep2-next=p1;/*如果是非空表,将结点插入到表尾*/p2=p1;/*指针p2指向链表的最后一个结点*/指针第一节指针的概念第二节指针与数组的关系第三节指向结构体类型数据的指针第四节项目任务:用动态内存分配实现输入输出管理第一节指针的概念计算机硬件系统中有两个重要的硬件:CPU和内存。程序是在CPU的控制下运行的,而程序执行时需要处理各种数据,这些数据是被存放在内存中的。为了便于管理,内存空间被划分成若干个大小相同(1个字节)的存储单元,并为每一个存储单元安排一个编号,这个编号被称为内存地址,例如:在程序中,如果定义了如下的整型变量:intx,y;在编译时就给这两个变量分配了内存单元。假定变量x占用编号为20A0(十六进制)和20A1的两个连续的内存单元,变量y占用20A2和20A3两个连续的内存单元。若程序中有如下语句:x=15;y=30;则系统实际上就把15送到地址为20A0开始的两个连续单元中,把30送到地址为20A2开始的两个连续单元中。作为一类特殊的变量,指针就像一个指示器,它告诉程序在内存的什么地方可以找到数据。当然,数据在内存中占几个单元是由数据的类型决定的,如字符型变量分配1个字节,整型变量分配2个连续字节,单精度实型变量分配4个连续字节,双精度实型变量分配8个连续字节,指针指向的是相应数据在内存中存放空间的第1个单元的地
文档评论(0)