数据结构——线性表链式存储结构3(C语言)

本文详细解析了单链表与循环单链表的结构特点及操作方法,包括带头结点与不带头结点的单链表在插入与删除时的不同,以及循环单链表的特殊性。通过具体代码示例,阐述了如何在链表头部添加元素,以及循环单链表的实现方式。

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

2.无空头链表:
带头结点单链表无论在第一个数据元素结点前插入,还是在其他结点前插入,操作方法一样;而不带头结点单链表在第一个数据元素结点前插入,和在其他结点前插入,操作方法不一样。
删除操作和插入操作类似。

参考:本人上篇博客

 //创建链表 ,在链表中添加一个数据   头添加
  void AddListHead(int a)
  {
      //创建节点
      struct Node * pTemp =(struct Node*)malloc(sizeof(struct Node));
      //赋值
      pTemp->a=a;
      pTemp->pNext=NULL;
      //接在链表上
      if (g_Head==NULL || g_End==NULL)
      {
          //链表什么都没有,来的节点就是头节点,也是尾节点
          g_Head=pTemp;
          g_End=pTemp;
      }
      else
      {
          //链表不为空,来的一个节点接在头节点后面,头节点要往前移动
          pTemp->pNext=g_Head;
          g_Head=pTemp;
      }
  }

代码:代码下载

3.循环单链表
其结构特点:链表中最后一个结点的指针域指向整个链表的第一个结点,从而使链表形成一个环。优点是从链尾到链头比较方便,也有带头结点和不带头结点两种结构。
在这里插入图片描述
程序设计:
p!=NULL 改为 p!=head
P->next!=NULL 改为 p- >next != head

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值