003__单向循环链表+程序设计与笔试题分析

第三天笔记

一、单向循环链表的原理与应用

思考:对于单向链表而言,想要遍历链表,则必须从链表的首结点开始进行遍历,请问有没有更简单的方案实现链表中的数据的增删改查?

回答:是有的,可以使用单向循环的链表进行设计,单向循环的链表的使用规则和普通的单向链表没有较大的区别,需要注意:单向循环链表的尾结点的指针域中必须指向链表的首结点的地址,由于带头结点的单向循环链表更加容易进行管理,所以教学以带头结点的为例:

上图所示的就是一个典型的单向循环链表的结构,可以发现单向循环链表的结构属于环形结构,链表中的最后一个结点的指针域中存储的是链表的第一个结点的地址。

为了管理单向循环链表,需要构造头结点的数据类型以及构造有效结点的数据类型,如下:

  1. 创建一个空链表,由于是使用头结点,所以就需要申请头结点的堆内存并初始化即可!

  1. 创建新结点,为新结点申请堆内存并对新结点的数据域和指针域进行初始化,操作如下:

  1. 根据情况把新结点插入到链表中,此时可以分为尾部插入、头部插入、指定位置插入:
  • 头插

  • 尾插

  • 中插

  1. 根据情况可以从链表中删除某结点,此时可以分为尾部删除、头部删除、指定元素删除:
  • 头删

  • 尾删

  • 中删

二、练习

练习:

练习:

练习:

练习:

练习:

练习:

练习:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值