




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 PAGE 61 程序解读及注释/* 约瑟夫环的程序设计shiyan13.c */#include #include #define Null 0typedef struct tagnode 定义数据结构,并且简写为LinkList int num; struct tagnode *next; LinkList;LinkList *creat(int n);LinkList *select(LinkList *head,int m); 定义函数 输出结果为地址LinkList *head=Null,*last;int main() int n,m; printf(nInput the tota
2、l number of people:n); scanf(%d,&n); printf(ninput the number of person you are to call:n); scanf(%d,&m); head=creat(n); last=select(head,m); 函数调用 n=last-num; printf(the last one:%dn,n); free(last); printf(nPress any key to continue.n); getch(); return (1); /* main */LinkList *select(LinkList *head,
3、int m) 函数“叫名” LinkList *p,*q; int i,t,flag=0; p=head; t=1; 个人认为此处程序编写有纰漏,应是t=0,否则输入若喊道1的人出列的情况将会出现一下错误导致第一个人为Last q=p; q-前趋指针, p-当前指针 do do-while循环 p=q-next; t=t+1; if(t%m=0) 报数到 ,则立即跳出循环 printf(%4dt,p-num); if(q-next=q) flag=1;break; q-next=p-next; free(p); 并且释放变量 p=q; else q=p; while(q=p)|(flag=0)
4、; head=p; return (head);/* Select */LinkList *creat(int n) 使 n 个人围成一圈,并给每个人标识号数 LinkList *head,*s, *p; int i; s=(LinkList *)malloc(sizeof(LinkList); 申请结点 head=s; s-num=1; 先定义第一个 p=s; for(i=2;inum=i; p-next=s; p=s; p-next=head; return (head);/* creat */* 约瑟夫环的程序设计shiyan14.c */#include void Josephas(i
5、nt n,int m,int s); 函数声明int main() int n,m,s; printf(Johephas problemn); printf(input number of people, number to call,and start number:n); scanf(%d,%d,%d,&n,&m,&s); Josephus(n,m,s); 函数调用 getch(); /* main */Josephus(int n,int m,int s) int *R,i,j; R=(int *)malloc(n*sizeof(int); 申请结点空间 且大小为n个int for(i=
6、1;i=2;i-) s=(s+m-1) % i; if(s=0) s=i; 从start number开始,如果是n-1 printf(%d,Rs); 个人,则输出这个人 for(j=s+1;jexp=q-exp) /* coeficients */ x=p-coef-q-coef;if(x!=0) r=(TERM *)malloc(sizeof(TERM);r-exp=p-exp;r-coef=x;s-next=r;s=r;p=p-next;q=q-next;else if(p-expexp) r=(TERM *)malloc(sizeof(TERM);r-coef=q-coef;r-exp
7、=q-exp;s-next=r;s=r;q=q-next;else /* p-expq-exp */r=(TERM *)malloc(sizeof(TERM);r-exp=p-exp;r-coef=p-coef;s-next=r;s=r;p=p-next;while(p!=Null) r=(TERM *)malloc(sizeof(TERM);r-exp=p-exp;r-coef=p-coef;s-next=r;s=r;p=p-next;while(q!=Null) r=(TERM *)malloc(sizeof(TERM);r-exp=q-exp;r-coef=q-coef;s-next=r
8、;s=r;q=q-next;s-next=Null;r=hc;hc=hc-next;free(r);return (hc); /*polyjian */思考题2 修改数组结构定义typedef struct tagnode int num; char name; struct tagnode *next;修改creatLinkList *creat(int n) /* 使 n 个人围成一圈,并给每个人标识号数 */ LinkList *head,*s, *p; int i;char mydata; s=(LinkList *)malloc(sizeof(LinkList); head=s; s
9、-num=1; p=s; for(i=1;inum=i;printf(“enter name %d”,i);scanf(%c,&mydata);s-name=mydata; p-next=s; p=s; p-next=head; return (head);/* creat */3 本节课收获和感想。相比于约瑟夫环的程序设计的2组实验中,先选择单项循环链表作为存储结构模拟整个过程,并依次输出出列人的编号;再选择数组作为存储结构模拟整个过程,并依次输出出列人的编号;对同一问题,比较数据结构不同时,同一算法的不同实现及效率也不一样。从程序的编写来看,显然顺序结构比链式结构更加简单一些。因为数组的引入大大地减小了链式结构中由于数据录入时next和head递推时的各种循环所造成的麻烦。由此可见,对于同一到问题,可以先考虑顺序结构,这样更利于问题的快速解决。本节课在老师的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省仁寿县二中、华兴中学2025届物理高二第二学期期末经典模拟试题含解析
- 旅游危机管理师笔试试题及答案
- 2025年营口市高校毕业生“三支一扶”计划招募考试试题【答案】
- 2025年研究生学术科研知识竞赛考试练习题库(完整版)【答案】
- 2025年碳碳复合材料刹车片项目合作计划书
- 2025年上海闵行教育系统实验员招聘考试试题【答案】
- 2025年ZRO2陶瓷轴承球项目合作计划书
- 酒水购销合同(范文)
- 项目二 基础信息设置
- 2025年警车玻璃系列项目建议书
- 2025年3月版安全环境职业健康法律法规标准文件清单
- 《心律失常患者的护理指南》课件
- 《班组管理培训》课件
- 2025年个人资产出售与收购协议书
- 2024建筑光伏一体化应用技术规程
- 2025年度人力资源居间费合同范本:人才招聘中介服务协议
- 污水处理厂设计中的安全措施与管理
- 血小板制备纯度提升策略-洞察分析
- 2025年度文化旅游区景区管理费收取与运营合同3篇
- 环境卫生管理方案
- 中国居民投资理财行为调研报告2024-高金智库x蚂蚁理财智库-202412
评论
0/150
提交评论