【复习笔记】循环链表

循环列表基本方法的实现与单链表类似,但是在遍历判别的时候有所区别,不再是指向NULL结束,而是指向头指针时结束
1、创建空的循环链表
if(head->next == head)
return head;

2、将循环链表置空
CriList p = NULL;
while(head->next != head)
{
p = head->next;
head->next = p->next;
free(p);
}
p = NULL;

3、判断循环链表是否为空
1.if(head->next == head);//return TRUE;
2.if(0 == length(head));//return TRUE;

4、计算循环链表的长度
CriList p = head->next;
while(p)
{
count ++;
p = p->next;
}
return count;

5、查询循环链表中某一内容的位置
CriList p = head = head->next;
while(p)
{
if(x == p->data)
{}
p = p->next;
}

6、查询循环链表第 i 个结点的位置
判断 i 是否符合要求
同单链表的Locate

7、将某一内容插入到循环链表的 i 结点上
当插入到 第一个结点时比较特殊,将新的内容放入新链表,将该链表插入,定义q指向该链表
CriList p = head;
if(1 == i)
{
q->next = head->next;
head->next = q;//将q置为第一个结点,使head能找到第一个结点
}

8、删除循环链表中的第 i 个结点


9、打印循环链表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值