- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计基础 2005.9 第十二讲 结构指针与链表入门 教学内容 指针与数据结构 动态存储结构—链表 指针与链 动态存储的基本概念 指针应用综合训练—链表设计初步 用节点内部指针关联两个节点 单链表基本概念与操作 例题:复制单链表 引用的概念 构造单链表 循环单链表结构 链表操作—搜索指定节点 链表操作—指定节点前插入新节点,递增有序 循环链表操作—搜索指定节点 例 编写一个函数copy,将单链表A复制到单链表B,并用函数list输出B到屏幕 例 单链表复制(二) 指针与数据结构 指针代表数据的物理地址,它指向一个节点的内存位置。 数据节点之间的关系有多种,数组可以存储具有线性关系的表格。但是数组无法存储如下一种关系: C语言 04教程 中考 单词排序 杨辉三角 debug 源程序 期末 总分 期中成绩 试卷 节点之间的连接关系是非线性的,类似一棵树的结构 怎样在计算机中存储文件夹所表达的逻辑关系? 文件目录会随时增删,因此节点之间的连接关系是非线性的且动态变化的 如果有一个指针指向后续节点位置,程序可以根据指针找到其后续节点,我们就能在计算机中存储文件夹所表达的逻辑关系 修改指针的指向,可以动态的跟随后续节点的逻辑关系变化 指针与抽象的数据节点连接 指针在数据结构起到关联节点的作用; 让指针从一个节点元素内指向另一个节点元素,通过指针连接节点元素之间的存储位置,从而让它们之间关联在一起,进而表达了它们之间的逻辑关系。 指针能从一个节点指向另一(或者是多个)节点,它必须是在节点内部,因此,在结构定义中加入指针变量,指针在节点内,它指向下一个节点; 假定程序找到了当前节点位置,就能根据指针找到后续节点所在,这就是节点关联。 a1 a2 指针在节点内部 a3 节点之间用指针串成一条链,表明节点之间是线性逻辑关系 具有指针的节点结构 struct student{ char num[20]; char name[40]; char class[40]; int sex; char birthday[20]; int tel; struct student *next; }; 数据区域 指针区域 在student结构分成两部份,数据域描述学生属性的基本信息; 该节点的指针域有指针变量next,若用next指向学生集合中的其它节点,可以表达集合中节点之间的关系,使它们关联在一起。 指向同类型的节点 用节点内部指针关联两个节点 struct student *head,*p; 设指针head已指向内存里的一个节点a1; 现在,再申请一个节点a2; 对a1的next赋值使其指向a2,从而让a1与a2关联起来; a2=(struct student_node *)malloc(sizeof(student_node)); a2-number=2006231; a2-name=刘东; a2-next=Null; head-next=a2; a1 next head head指向a1 a2 next ^ next指向a2 物理上a1的指针next链接了节点a1和a2 对a2的数据域赋值 在逻辑上,指针表达了a1和a2是线性有序关系: a1,a2 链表的概念 与数组相比,链表是动态数据存储结构。 设用结构数组存储学生选课人数,因不能预先确定人数,数组太大占用内存,太小不能满足使用要求。并且,当学生留级、退学之后也不能把其占用的空间从数组中释放出来。 用动态存储的方法可以很好地解决这些问题。 一个学生数据称之为一个结点。动态存储方法是每新增一个节点申请一个内存区域,有多少个学生就应该申请分配多少块内存空间,也就是说要建立多少个结点。 存储空间随纪录增加而改变。无须预先确定学生人数,某学生退学,可删去该结点,从而释放该结点占用的存储空间。 数组要占用一块连续的内存区域。动态分配的内存其每个结点之间可以是不连续的。 结点之间的逻辑联系用指针实现。在结点结构中定义一个结构指针,用来存放下一结点的首地址,我们称之为指针域。 用指针链接的线性表格,称之为“链表”。 a1, a2, a3, …, an S a1, a2, a3, a4, ai-1 S 线性表—顺序存储与链式存储 ,ai 指针的指向,描述了ai,ai+1的逻辑关系 a1 next head head指向a1 a2 next ^ next指向a2 具有两个节点的链表 在链表的第一个结点的指针域内存入第二个结点的首地址; 在第二个结点的指针域内又存放第三个结点的首地址; 如此串连下去,直到最后一个结点。最后一个结点因无后续结点连接,其指针域可赋为0; 只要初始
您可能关注的文档
- 2016.4初二物理期中试卷解析.doc
- 2016.4月蔡云霞过敏性紫癜的护理查房解析.ppt
- 2016.4.3胎盘早剥的临床诊断与处理规范解析.ppt
- 2016.4学考+选考(文字版)解析.doc
- 2016上海开放大学行政管理本科《西方行政学说》网考答案已排版讲诉.doc
- 2016.5.13上机内容解析.ppt
- 2016.7.22(94分)2016年广西专业技术人员创新与创业能力建设考题与答案解析.doc
- 2016.7.25.建国以来我国的四次机关事业单位工资制度改革解析.doc
- 2016.7.19(90分)2016年广西专业技术人员创新与创业能力建设考题与答案解析.doc
- 2016.7汇报材料解析.doc
- 2016.10课改促进会经验交流解析.ppt
- 201603学期北京航空航天大学网考复习题公共关系学解析.doc
- 201603学期北京航空航天大学网考复习题国际贸易理论解析.doc
- 201603学期北京航空航天大学网考复习题钢结构设计原理解析.doc
- 20160405有序数对解析.ppt
- 20160401南雅-长沙市高考研讨会解析.ppt
- 201603271245343.27投资动力学-九龙擒庄与主力行为识别系统解析.doc
- 07互感电路讲诉.doc
- 20160416郭峰:互联网+区块链金融会颠覆什么?解析.docx
- 201606嘉峪关市房产管理局—嘉峪关市《行政事业单位职工住房补贴管理系统》项目解析.doc
文档评论(0)