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