Tag:循环链表

Tag (循环链表)'s result:

Circular links

循环链表是使最后一个结点的next指针指向表头结点,构成循环,这里我只实现了循环链表的创建和打印操作。 #include <stdio.h> #include <malloc.h> typedef struct lnode { int data; struct lnode *next; } LNODE,*linklist; //打印链表元素 void print_list(linklist L) { linklist p; printf(“建立的循环链表为:\n”); p = L->next; //指向结点(非头结点) while (p!=L) { printf(“%d “,p->data); p=p->next; } printf(“\n”); } //创建循环链表 void creat_list(linklist L) { linklist p,q; L->next = L; //指向自己 printf(“请输入链表元素:\n”); q = (linklist)malloc(sizeof(LNODE)); scanf(“%d”,&(q->data)); q->next = L->next; //q的后指针指向头结点 L->next = q; //头结点的后指针指向新开的q p = (linklist)malloc(sizeof(LNODE)); while ((scanf(“%d”,&(p->data)))!=EOF) { p->next = q->next; //新开的p的后指针指向前一个q的后指针 q->next = p; //q的后指针指向新开的p q = p; //q记录 p=(linklist)malloc(sizeof(LNODE)); //p再新开 } } int main() { linklist L; //是地址 L = (linklist)malloc(sizeof(LNODE)); creat_list(L); print_list(L); return 0; }