数据结构与算法学习(一)——循环单链表

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从表中的任意一个节点都能访问到表中的所有其他节点。 设置表中的最后一个节点的指针域指向表中的第一个节点,这种链表称为循环单链表。

单链表中某个结点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);   /*输出非空表中的第一
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值