- 1、本文档共484页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计实例教程
《C程序设计实例教程》 * 三、单链表的基本操作 1. 建立空链表 在链表中存在一个“头节点”,也就是指向目标链表首个节点的一个指针,在建立链表之前应该先定义这个指针并为其赋值。 2. 显示链表 对于链表的输出,应从头指针开始,依次遍历链表的每个节点,直到链表结尾(空指针)。 3. 添加节点 对链表按顺序添加新的节点时,根据该节点与头指针之间的位置关系,一般有头插法和尾插法两种形式。 《C程序设计实例教程》 * (1)头插法 (2)尾插法 《C程序设计实例教程》 * 4. 查找节点 (1)按序号查找:采用从头节点开始逐个遍历的方式,并在遍历过程中记录已经遍历的个数,直到遍历个数符合要求为止。 (2)按值查找 :按值查找是是自链表的头节点开始,依次判断节点数据域的某项数值与给定值是否相同 5. 插入节点 (1)后插法 《C程序设计实例教程》 * (2)前插法 6. 删除节点 《C程序设计实例教程》 * 7. 节点排序 方法:主要有冒泡排序、直接选择排序等 举例: 以下是按姓名方式对链表的各节点进行升序排序。 《C程序设计实例教程》 * comlist *sortbyname(comlist *h) { comlist *p1=h,*p2,*p; while(p1->next!=NULL) { p=p1; p2=p1->next; while(p2!=NULL) { if(strcmp(p->name,p2->name)>0) p=p2; p2=p2->next; } if(p!=p1) { exchangenode(p,p1); printf("OK\n"); } p1=p1->next; } return(h); } 《C程序设计实例教程》 * 第七章 编译预处理 掌握:带参的宏和不带参的宏的定义和使用方法 掌握:编译预处理命令的含义及其与其他命令的区别 了解:条件编译 重点:宏的定义和使用 难点:带参宏的定义和使用,条件编译 《C程序设计实例教程》 * §7.1 宏 定 义 何为预处理? 定义:是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所做的工作。 何谓为宏定义? 定义:是将一个标识符定义为一个字符串,在编译之前将程序出现的该标识符用字符串替换,所以又称为宏替换。 宏定义分类: 一、无参宏定义 定义: 无参宏的宏名后不带参数。 形式: #define 标识符 字符串 例如: #define M (y*y+3*y) 《C程序设计实例教程》 * 几点说明: (1)宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名。 (2)宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。 (3)宏定义必须写在函数之外,其作用域为从宏定义命令起到源程序结束。如要终止其作用域可使用# undef命令。 【例7.1】undef终止宏的作用 #define PI 3.14159 void main() { …… } # undef PI f1() { .... } 《C程序设计实例教程》 * (4)宏名在源程序中若用引号括起来,则预处理程序不对其作宏代换 . (5)宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名,在宏展开时由预处理程序层层代换。 (6)习惯上宏名用大写字母表示,以便于与变量区别,但也允许用小写字母。 (7)可用宏定义表示数据类型,使书写方便。 《C程序设计实例教程》 * 二、带参宏定义 定义:带参数的宏定义扩充了无参宏定义的功能,在字符串替换的同时还进行参数的替换 。 形式:#define 标识符(形参表)字符串 【例7.6】带参宏的定义和使用。 #include "stdio.h" #define SQ(y) ((y)*(y)) void main() { int i=1; while(i<=5) printf("%d\n",SQ(i++)); } 《C程序设计实例教程》 * 7.2 文件包含 文件包含 定义:是指一个源文件可以将另外一个指定的源文件的内容包含进来。 形式为: #include "文件名" 或 #include <文件名> 注意问题 : (1)包含命令中的文件名可以用双引号括起来,也可以尖括号括起来。如:#include“stdio.h”或 #include<math.h> (2)一个inc
您可能关注的文档
- C009工程材料、构配件、设备报审表.doc
- C-5施工组织附件.doc
- C13监理细则——101电气工程.doc
- C17煤掘进队工程合同.doc
- C1驾照考试理论题库.doc
- c13半导体三极管0.ppt
- C5二工区土方开挖施工方案522.doc
- C6140车床拨叉CADCAM课程设计说明书.doc
- C9煤运输石门掘进队工程合同.doc
- CAD使用命令大全.ppt
- 2023年广东省珠海市城市应急中心招聘15人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx
- 2023年贵州省贵阳市息烽县面向社会引进高层次人才46人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx
- 2023年浙江宁波市鄞州区第二医院医共体姜山分院编外工作人员招聘1人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx
- 2023广东华南农业大学招聘辅导员15人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx
- 2023年江西省赣州市大余县招收高校毕业生(失业青年)见习329人笔试历年难、易点深度预测(共500题含答案解析)模拟试卷.docx
- 2023年贵州省黔东南施秉县事业单位招聘18人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx
- 2023下半年四川南充营山县事业单位招聘40人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx
- 2023年广东省惠州市博罗县县直事业单位招聘紧缺人才(含高层次人才)35人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx
- 2023年浙江省温州市鹿城区环保局招聘4人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx
- 2023年安徽明光市事业单位招聘高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx
文档评论(0)