从表中的任意一个节点都能访问到表中的所有其他节点。 设置表中的最后一个节点的指针域指向表中的第一个节点,这种链表称为循环单链表。
单链表中某个结点p是表中的最后一个结点的特征是 p->next ==NULL;对于一个循环单链表,若首指针为head 表中某个结点的特征应该是 p->next == head。
typedef struct node{
datatype data;
struct node *next;
}node;
- 建立一个空的循环单链表
node *init(){ /*建立一个空的循环单链表*/
return NULL;
}
- 获得循环单链表的最后一个结点存储地址
node *rear(node *head){
node *p;
if(!head){
p == NULL;
}else{
p == head;
while(p->next! = head){
p = p->next;
}
}
return p;
}
- 输出循环单链表的各个结点的值
void display(node *head){
node *p;
if(!head){
printf("\n循环单链表是空的\n");
}else{
printf("\n循环单链表的各个结点的值为:\n");
printf("%5d",head->data); /*输出非空表中的第一个结点的值*/
p = head->next; /*p指向第一个结点的下一个结点*/
whi

本文介绍了循环单链表的概念,其特点是每个节点的指针域指向下一个节点,最后一个节点指回表头,使得链表形成一个环。讨论了如何判断循环单链表的尾节点,建立空链表,获取最后一个节点,遍历输出节点值,以及查找、插入和删除操作等基本操作。
最低0.47元/天 解锁文章
165

被折叠的 条评论
为什么被折叠?



