在对单链表的知识学习之后,这篇文章讲一下单循环链表的知识。单循环链表,顾名思义,在单链表的基础上,将其最后一个结点的指针域指向该链表的头结点,使得链表头尾结点相连接,就构成了单循环链表。从概念可知,单循环链表中有两个指针,头指针head 和尾指针rear ,当尾指针rear->next = haed时即表示单循环链表。
单链表和单循环链表的区别:单链表中当 rear->next = NULL 时表示链表结束,而单循环链表中 rear->next = head 表示链表结束,其它并无差别
下图为单循环链表的结构图示:
单循环链表基本操作:
#include <stdio.h>
#include <stdlib.h>
#define N 5
struct Data{
int num;
struct Data *next;
};
struct Data * Insert()
{
int data,i;
struct Data *head,*r,*s;
head = ( struct Data * )malloc( sizeof (struct Data));
head->next = NULL;
r=head;
for (i=0; i<N; i++ )
{
scanf("%d",&data);
s = ( struct Data *)malloc(sizeof (struct Data));