数据结构:循环链表
创作时间:
作者:
@小白创作中心
数据结构:循环链表
引用
CSDN
1.
https://m.blog.csdn.net/2302_80795993/article/details/144679198
数据结构是Java语言学习中的重要组成部分,其中循环链表是一个常见的数据结构。循环链表的特点是链表中的最后一个节点指向链表的头节点,形成一个闭环。与普通链表不同的是,循环链表中的快慢指针终将相遇,这一特性使得循环链表能够实现无限遍历循环的功能。
下面是一个循环链表的Java代码实现示例:
package Linear;
public class CircleListCheckTest {
public static void main(String[] args) throws Exception {
// 创建结点
CircleListCheckTest.Node<String> first = new CircleListCheckTest.Node<>("aa", null);
CircleListCheckTest.Node<String> second = new CircleListCheckTest.Node<>("bb", null);
CircleListCheckTest.Node<String> third = new CircleListCheckTest.Node<>("cc", null);
CircleListCheckTest.Node<String> fourth = new CircleListCheckTest.Node<>("dd", null);
CircleListCheckTest.Node<String> fifth = new CircleListCheckTest.Node<>("ee", null);
CircleListCheckTest.Node<String> six = new CircleListCheckTest.Node<>("ff", null);
CircleListCheckTest.Node<String> seven = new CircleListCheckTest.Node<>("gg", null);
// 完成结点之间的指向
first.next = second;
second.next = third;
third.next = fourth;
fourth.next = fifth;
fifth.next = six;
six.next = seven;
// 产生环
seven.next = third;
// 判断链表是否有环
boolean circle = isCircle(first);
System.out.println("first链表中是否有环: " + circle);
}
public static boolean isCircle(Node<String> first) {
// 定义快慢指针
Node<String> fast=first;
Node<String> slow=first;
// 遍历链表
while(fast!=null && fast.next!=null){
fast=fast.next.next;
slow=slow.next;
if (fast.equals(slow)){
return true;
}
}
return false;
}
private static class Node<T> {
// 存储数据
T item;
// 下一个结点
CircleListCheckTest.Node<T> next;
public Node(T item, CircleListCheckTest.Node<T> next) {
this.item = item;
this.next = next;
}
}
}
这段代码首先创建了多个节点,并通过指针将它们连接起来形成一个链表。然后,通过将最后一个节点的next指针指向链表中的某个中间节点,形成了一个环。最后,通过快慢指针的方法判断链表中是否存在环。
热门推荐
肩关节响并有疼痛是怎么回事
中专三二分段教育:利弊、招生对象及录取方式详解
Excel数据透视表刷新方法详解:手动、自动、VBA代码等多种方式
多亏被提醒,原来80%的燃气灶故障,都可以通过两根“针”来解决
松下燃气灶热电偶故障维修指南
猪肺萝卜汤
吃止痛药怕伤肝、伤肾?吃止痛药会上瘾?药师破解6大常见迷思
消炎止痛药和消炎药有实际的区别,不是人人都能服用
杏坛杏林杏花天 宜观宜食宜药煎
在家种植火龙果的方法和步骤
肺气肿就是慢阻肺吗?一文读懂两种常见呼吸系统疾病
国产工业机器人崛起,市场份额大幅提升,你怎么看?
PyQt项目实战:从零构建图书馆管理系统
荨麻疹性血管炎这个病严重吗
自制美味酸奶饼(简单易学)
如何分析市场横盘期的股票表现
春季张家界七星山精华景点游览攻略:探寻自然奇观与人文美景
不可忽视的心血管健康“隐形杀手” - 载脂蛋白B
快板武松打虎台词
自动化工业中,微型电动夹爪的智能化控制系统如何优化作业效率?
宝宝健康睡眠,宝爸宝妈可省大心了
利好政策支撑 校城资源共享——克拉玛依走出独具特色的校城融合发展之路
髋关节活动度和力量练习对预防全身损伤的重要性
这里是髋关节
迷走神经在创造人类心灵感觉中的关键作用
高利贷利息高于多少属于违法
男生发型名称大全图解 最全男士发型名称及脸型搭配
常州博物馆最全参观指南(营业时间+预约门票+交通路线)
吃出来的脂肪肝,如何吃回去?
英超分析技巧:英超联赛因果推断与层次建模分析预测