线性表应用:魔术师发牌与拉丁(Latin)方阵(循环链表)
题目描述: 有黑桃1到13,13张牌,成某种顺序,魔术师可以从1开始数 ,数1,背面朝上的13张牌第一张就是1,然后放到桌面上,然后从1开始数,把第一张放在所有牌下面,数到2,翻开,就是2,再放到桌子上,以此此类推 #include<stdio.h> #include<stdlib.h> #define LEN sizeof(LinkList) #define cardNum 13 typedef struct node { int data; struct node *next; }LinkList; LinkList *creatList() { LinkList *head = NULL; LinkList *s,*r; r = head; for(int i=1; i <= cardNum; i++) { s = (LinkList *)malloc(LEN); s->data = 0; if(head == NULL) { head = s; } else { r->next = s; } r = s; } r->next = head; return head; } void MagicCard(LinkList *head) { int i; int countNum = 2; LinkList *p; p = head; p->data = 1; while(1)