- 2
- 0
- 约5.35千字
- 约 23页
- 2017-02-05 发布于湖北
- 举报
07《c语言与程序设计》第十二讲-清华李宛洲概要
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; 只要初始
您可能关注的文档
- 06第6章语法制导翻译技术概要.ppt
- 06第六章变异指标分析概要.ppt
- 06第六章分子发光分析法概要.ppt
- 06混频器概要.ppt
- 07-08上第一次月考九年级历政概要.doc
- 07-11年人力资源管理师历年问答题汇总概要.doc
- 07-GSM系统概要.ppt
- 06专题六地理环境的整体性和差异性概要.ppt
- 07.地方应用型高水平大学2016年度建设项目工作任务书(蔡华珍-食品质量与安全)概要.doc
- 0741作文秘笈概要.ppt
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
最近下载
- 2013款比亚迪M6新版电路图(含488、电动滑门及全景影像).pdf VIP
- CECS19-1990 混凝土排水管道工程闭气检验标准.docx VIP
- DB21_T 4245-2025 地理标志产品 抚顺林下参.docx VIP
- DB21_T 4246-2025 农产品地理标志产品 新宾大米.docx VIP
- DB21_T 4249-2025 林下辽细辛种植技术规程.docx VIP
- 2026年深圳中考历史命题趋势预测试卷(附答案可下载).docx VIP
- 2026年深圳中考物理命题趋势预测试卷(附答案可下载).docx VIP
- 高维空间的时空紧致化.pdf
- 林下种植实施方案.docx VIP
- [臺 灣文獻叢刊077]天妃顯聖錄.pdf VIP
原创力文档

文档评论(0)