循环链表的操作实现算法与非循环链表的操作算法基本相同,只是对表尾的判断做了改变。
定义单链表的存储结构:
typedef struct LinkList{
int data;
LinkList * next;
}
思路;(尾插法,定义尾指针)
1.建立头结点L.并置为空的循环单链表 ,并定义一个尾指针
2.通过for循环,生成新节点,链接到头结点之后,一个接一个。
注意:最后要让r->next 指向头结点
C代码实现:
void CreateClistF(LinkList *& L,int a[],int n){
LinkList * s,*r;
int i; //循环变量
L = (LinkList * )malloc(sizeof(LinkList));
r = L; //r始终指向终端节点
for(int i = 0; i < n; i++){
s = (LinkList *)malloc(sizeof(LinkList));
s->data = a[i];
r->next = s;
r = s;
}
r->next = L; //尾节点的next指向头结点
}