点击(此处)折叠或打开
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define LEN 10
- typedef struct node {
- int data;
- struct node *pnext;
- } node_t, *pnode_t;
- pnode_t create_list(int len)
- {
- pnode_t phead, pnew, ptail;
- int i;
- for (i = 0; i < len; i++) {
- pnew = (pnode_t)malloc(sizeof(node_t));
- if (pnew == NULL) {
- printf("malloc fail.\n");
- exit(-1);
- }
- memset(pnew, 0, sizeof(node_t));
- pnew->data = i + 1;
- if (i == 0)
- phead = ptail = pnew;
- else {
- pnew->pnext = NULL;
- ptail->pnext = pnew;
- ptail = pnew;
- }
- }
- /*ptail->pnext = phead;*/
- return phead;
- }
- int main(int argc, char *argv[])
- {
- pnode_t phead, p, q;
- phead = create_list(LEN);
- p = q = phead;
- while (1) {
- p = p->pnext;
- q = q->pnext->pnext;
- if (p == NULL || q == NULL) {
- printf("No Ring!\n");
- return;
- }
- if (p == q) {
- printf("Ring occurred!\n");
- return;
- }
- }
-
- return 0;
- }