#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define size 4
int swap(int source[], int a, int b) {
int temp;
temp = source[a];
source[a] = source[b];
source[b] = temp;
return 0;
}
typedef struct node {
int data;
struct node *next;
}linklist;
linklist *creatlist(int n) {
linklist *p, *head, *q;
int i;
head = (linklist *)malloc(sizeof(linklist));
head->data = 1;
q = head;
for (i = 2; i <= n; i++) {
p = (linklist *)malloc(sizeof(linklist));
p->data = i;
q->next = p;
q = p;
}
q->next = NULL;
return head;
}
linklist *judge(linklist *head)
{
if (head == NULL | head->next == NULL) {
return 0;
}
linklist *p, *q;
p = head->next;
q = head->next->next;
while (q && q->next && p != q) {
p = p->next;
q = q->next->next;
}
if (p == q) {
printf("this is a 回环链表 \n");
}
else printf("this is not 回环链表 \n");
return 0;
}
int main()
{
linklist *head, *now;
head = creatlist(8);
now = head;
int i;
for (i = 0; i < 8; i++) {
printf("%d ", now->data);
now = now->next;
}
printf("\n");
now = head;
judge(now);
}