欢迎来到天天文库
浏览记录
ID:42763399
大小:75.13 KB
页数:5页
时间:2019-09-20
《兰州大学数据结构课程设计1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、题目1:猴子选王(学时:3)一堆猴子都有编号,编号是1,2,这群猴子5个)按照l-m的顺序围坐一圈,从第1开始数,每数到第n个,该猴子就耍离开此圈,这样依次下来,直到圈中只剩卜•最后一只猴了,则该猴了为大王。要求:m及n要求从键盘输入,存储方式采用向量及链表两种方式实现该问题求解。(1)〃存储方式采用数组方式编写猴子选王程序#include,,stdio.hHvoidmain(){inta[100]mn,i,j,k;printfC*输入猴子数m:“);scanf(n%dH,&m);printf(“输入n:H);scanf("%d*',&n);printf("顺序为:”);for
2、(i=l;iv=m;i++)a[i]=i;〃定义猴了的序号j=l;〃从1号猴子开始for(i=l;ivm;i++){k=0;〃k为实际的猴子数while(km)冃・m;if(a
3、j]!=0){j++;k++;}elsej++;}printf(H%d”,a[j・l]);aU-l>0;}for(i=l;i<=m;i++)if(a[i]!=0)printf(M大王是%d号猴子n,a[i]);break;⑵〃存储方式采用链表方式实现猴了选王问题。#include#include#defineLENsizeof(structMo
4、nkey)structMonkey{intnum;structMonkey*next;};〃定义结点structMonkey*creat(structMonkey*L,intm)//循环链表初始化{structMonkey*pl,*p2;〃定义两个指向structMonkey指针变量inti;L=(structMonkey*)malloc(LEN);//开辟一个新单元L->num=l;〃一号猴子pl=L;for(i=2;i<=m;i++)//设置2-n号猴子{p2=(structMonkey*)malloc(LEN);p2->num=i;pl->next=p2;pl=p2;}pl-
5、>next=L;//n号猴子指向一号猴子returnL;〃返回指向链表头的指针}voidfac(structMonkey*L,intn){structMonkey*pl,*p2;inti=l;pl=L;while(p1->next!=p1){while(i!=n-l){pl=p1・>next;p2=pl->next;pl->next=p2->next;〃删除n号结点printf(H%dM,p2->num);〃输出n号猴子序号free(p2);i=0;}printf("大王是编号%dn,pl->num);//大王结点处free(pl);}intmain(){stmctMonk
6、ey*L=NULL;intn,m;printf(H请输入猴子个数m:n);scanf(n%d",&m);printf(”请输入n的值:”);scanf(H%dH,&n);if(m7、hu不不不不不不不不不不不/#include#include#defineLENsizeof(structString)structString{structString*last;chars;};voidmain()structString*st「*end;charc;printf(HPleaseenterastring:H);scanf("%c",&c);个字符str=(structString*)malloc(LEN);str->last=NULL;while(c!='*)条件,读到冋车的时候停止{str->s=c;end=(st8、nictString*)malloc(LEN);end->last=str;位str=end;scanf("%c",&c);}一位printf(”逆序排列为:n);for(;end->last!=NULL;){end=end・>last;printf("%cH,end->s);}printf(nu);〃输入字符串,并读取第一〃将字符串存入链表屮,终止〃将该字符存入节点//开辟一个新结点〃每一位字符.last指向上一〃读取字符串的下一个字符〃此时end指针指向最
7、hu不不不不不不不不不不不/#include#include#defineLENsizeof(structString)structString{structString*last;chars;};voidmain()structString*st「*end;charc;printf(HPleaseenterastring:H);scanf("%c",&c);个字符str=(structString*)malloc(LEN);str->last=NULL;while(c!='*)条件,读到冋车的时候停止{str->s=c;end=(st
8、nictString*)malloc(LEN);end->last=str;位str=end;scanf("%c",&c);}一位printf(”逆序排列为:n);for(;end->last!=NULL;){end=end・>last;printf("%cH,end->s);}printf(nu);〃输入字符串,并读取第一〃将字符串存入链表屮,终止〃将该字符存入节点//开辟一个新结点〃每一位字符.last指向上一〃读取字符串的下一个字符〃此时end指针指向最
此文档下载收益归作者所有