数据结构上机实验程序--猴子选大王

时间:2022-04-17 08:00:07 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
#include #include struct Monkeyking {

int data;

struct Monkeyking *next; };

void main() {

struct Monkeyking *head, *s, *q, *t,*p,*h; int n, k, count=0, i,j;

printf("输入猴子总数:"); scanf("%d",&k); printf("\n");

printf("输入报号起始猴子编号:"); scanf("%d",&j); printf("\n");

printf("输入报号间隔数:"); scanf("%d",&n); printf("\n");

for(i=0; i {

s=(struct Monkeyking *)malloc(sizeof(struct Monkeyking)); s->data=i+1; s->next=NULL; if(i==0) {

head=s; q=head; } else {

q->next=s; q=q->next; }

}//建立一个单链表

q->next=head;//将单链表组成环状 printf("输出猴子原始的编号:"); q=head;

while(q->next!=head) {

printf("%d ",q->data); q=q->next;

}//依次输出节点的值


printf("%d ",q->data); printf("\n"); printf("\n"); q=head;

for (i=0;i{p=q;

q=q->next; } q=p;

printf("输出被淘汰的猴子编号:"); if (n==1) {

for (i=1;i<=k;i++) { t=q;

q=q->next; t->next=h; h=t; }

for (i=1;i<=k;i++) {

printf("%d ",h->data);//倒序输出淘汰猴子的编号,第一个编号为大王 h=h->next; }

printf("\n"); } else { do {

count++;

if(count==n-1) {

t=q->next;

q->next=t->next; t->next=h; h=t; count=0; }

q=q->next; }

while(q->next!=q); q->next=h; h=q;


}

for(i=1;i<=k;i++) {

printf("%d ",h->data);//倒序输出淘汰猴子的编号,第一个编号为大王 h=h->next; } }


本文来源:https://www.wddqw.com/doc/765a5234c6da50e2524de518964bcf84b9d52d67.html