- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
会计学
1
清华大学C语言教学共个第个
2
例:跳马。依下图将每一步跳马之后的位置(x,y)放到一个“结点”里,再用“链子穿起来”,形成一条链,相邻两结点间用一个指针将两者连到一起。
结构的概念与应用
第1页/共45页
3
依上图有7个结点
(x1,y1)
(x2,y2)
(x6,y6)
(x7,y7)
为了表示这种既有数据又有指针的情况,引入结构这种数据类型。
第2页/共45页
4
结构——是一种构造类型的数据类型。结构是数目固定、类型不同的若干变量的有序集合。结构与数组的区别在于结构内允许有不同类型的数据。
结构的定义,格式如下:
struct 结构名
{
成员说明
}
第3页/共45页
5
例如跳马棋局可如下定义
struct TM
{
int x,y; // 结构TM的成员,x,y为整数型
struct TM *next // 结构TM的成员,属TM型
}
下面的表是马的跳步方案,从左下角跳到右上角
结点
n1
n2
n3
n4
n5
n6
n7
x
y
0
0
1
2
2
4
4
3
6
4
7
2
8
4
第4页/共45页
6
8
4
NULL
NULL为空地址
下面是形成链表的一个参考程序(分三页)
2
4
n4
1
2
n3
0
0
n2
n1
head
第5页/共45页
7
// 结构1.c
#include stdio.h // 预编译命令
#define null 0 // 定义空指针常量
struct TM // 定义结构TM
{
int x,y; // 整型变量x,y
struct TM *next; // 指向TM结构的指针
};
void main() // 主函数
{ // 主函数开始
int i; // 声明整型变量
// 声明TM结构n1~n7,结构指针head,p
struct TM n1,n2,n3,n4,n5,n6,n7,*head,*p;
第6页/共45页
8
// 分别对TM结构n1~n7中的x,y赋值
n1.x=0;n1.y=0;
n2.x=1;n2.y=2;
n3.x=2;n3.y=4;
n4.x=4;n4.y=4;
n5.x=6;n5.y=4;
n6.x=7;n6.y=2;
n7.x=8;n7.y=4;
// head赋值为n1,即head指向n1
head=n1;
// n1~n7构成链表
n1.next=n2;
n2.next=n3;
n3.next=n4;
n4.next=n5;
n5.next=n6;
n6.next=n7;
// n7的next指针赋值为空指针
n7.next=null;
第7页/共45页
9
p=head; // p赋值为head,即p指向head所指的内容
i=1; // i赋值为1
do // 直到型循环
{ // 循环体开始
// 输出结点信息
printf(结点%d: x=%d, y=%d\n,i,p-x,p-y);
p=p-next; // p指向下一个结点
i=i+1; // 计数加1
} while(p!=null); // 未到达链表尾部,则继续循环
} // 主函数结束
第8页/共45页
10
用结构数组,利用键盘输入结点中的数据。
重点看
scanf(“%d”,a);
n[i].x=a;
结构数组,数组中的元素为结构类型的数据,如n[8]
// 结构2.c
#include stdio.h // 预编译命令
#define null 0 // 定义空指针常量
struct TM // 定义TM结构
{
int x,y; // 整型变量x,y
struct TM *next; // 指向TM结构的指针
};
第9页/共45页
11
void main() // 主函数
{ // 主函数开始
int i,a,b; // 声明整型变量i,a,b
// 声明TM型结构数组n[8],TM结构指针head,p
struct TM n[8],*head,*p;
for(i=1;i=7;i=i+1) // 循环
{ // 循环体开始
printf(输入n[%d]的x\n,i); // 提示输入第i个结构的x值
scanf(%d,a); // 输入a
n[i].x=a; // 将a的值赋给结构n[i]的元素x
printf(输入n[%d]的y\n,i); // 提示输入第i个结构的
您可能关注的文档
最近下载
- 基于国家智慧教育云平台的移动学习环境下的学生自主学习习惯养成研究教学研究课题报告.docx
- 高中思想政治新旧课程比较研究.pdf VIP
- 高一的语文专题训练—辨析并修改病句练习题.docx VIP
- QC成果-浙江中烟技术中心:ZJ112卷烟机VE循环风冷却系统的研制.pdf VIP
- YYT 0472.2-2004 医用非织造敷布试验方法 第2部分 成品敷布.docx VIP
- 猪促黄体生成素的重组表达载体、重组细胞株、制备方法.pdf VIP
- 智慧社区规划设计方案.ppt VIP
- 中压岸电AMP系统的安全操作及管理.pptx
- 一、课程性质与基本理念——2025年版《普通高中课程标准》思想政治(wor.pptx VIP
- 质子治疗与护理.pptx
原创力文档


文档评论(0)