数据结构(C语言)用栈和链表编写猴子选大王程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
q->next=q->next->next; q=t->next; free(t); }
T=(SLIST*)malloc(sizeof(SLIST)); T->data=q->data; M=T; M->next=H; H=M; T=(SLIST*)malloc(sizeof(SLIST)); T->data=q->data; M=T; M->next=H; H=M;
printf("依次被选出猴子的序号如下:\n"); print(M,n); printf("\n"); printf("猴子大王是%d\n",q->data); } } 运行结果如下:
}
main()//主函数 {
int a,b,n,i,j; int m[100]; SLIST *head,*q,*t,*T,*M,*G,*H; printf("输入猴子的个数\n"); scanf("%d",&n); head=creat(n); print(head,n); printf("输入第一只猴子的序号\n"); scanf("%d",&a); printf("输入猴子的间隔数,即步长\n"); scanf("%d",&b); if(b==1) { q=head->next; for(j=0;j<a-1;j++) q=q->next; printf("依次被选出猴子的序号如下:\n"); for(i=0;i<n-1;i++) { printf("%4d",q->data); q=q->next; } printf("\n"); printf("猴子大王是%d\n",a-1); } else { q=head->next; for(j=0;j<a-1;j++) q=q->nex源自文库;
#include<stdio.h> #include<stdlib.h> struct slist { int data; struct slist *next; }; typedef struct slist SLIST; SLIST *creat(int n)//建立链表 { int i; SLIST *h,*s,*r; h=(SLIST*)malloc(sizeof(SLIST)); r=h; for(i=1;i<=n;i++) { s=(SLIST*)malloc(sizeof(SLIST)); s->data=i; r->next=s; r=s; } r->next=h->next; return h; } void print(SLIST *head,int n)//输出函数 {
int l=0; SLIST *p; p=head->next; if(p=='\0') printf("这是个空链表\n"); else {
printf("猴子们的顺序:\n"); printf("head"); do {
l++; printf("-->%d",p->data); p=p->next; } while(l<n); printf("-->head\n"); }
G=(SLIST*)malloc(sizeof(SLIST)); G->data=100; H=G;
for(i=0;i<n-1;i++) {
t=q; for(j=0;j<b-1;j++)
t=t->next;
for(j=0;j<b-2;j++) q=q->next;
T=(SLIST*)malloc(sizeof(SLIST)); T->data=t->data; M=T; M->next=H; H=M;
相关文档
最新文档