基础循环链表的应用
代码
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int data;
struct node *next;
}sqlist,*linklist;
linklist CreateLinkList()
{
linklist head = NULL;
linklist r,s; //r为指向末尾指针 s为临时指针
int i;
r = head;
for(i = 1;i <= 13; i++)
{
s = (linklist)malloc(sizeof(sqlist));
s->data = 0;
if(head == NULL)
head = s;
else
r->next = s;
r = s;
}
r->next = head;
return head;
}
void give(linklist head)
{
linklist p;
int C = 2; //C为间隔
p = head; //p为指向当前位置指针
p->data = 1;
while(1)
{
for(int j = 0;j < C;j++)
{
p = p->next;
if(p->data != 0)
j--;
}
if(p->data == 0)
{
p->data = C;
C++;
if(C == 14)
break;
}
}
}
int main()
{
linklist p;
p = CreateLinkList();
give(p);
for(int i = 0;i < 13;i++)
{
printf("黑桃%d ",p->data);
p = p->next;
}
return 0;
}