数据结构:循环链表
创作时间:
作者:
@小白创作中心
数据结构:循环链表
引用
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指针指向链表中的某个中间节点,形成了一个环。最后,通过快慢指针的方法判断链表中是否存在环。
热门推荐
选择最适合的案板材质与正确的保养方法
馆见惠州㉕丨客家婆民俗文化馆:品千年客家文化 赏非遗独特魅力
华为网络设备最常用命令大全,2025最新整理!
耳鸣是什么引起的?七种科学治疗方法帮你摆脱困扰
礼佛普陀山,三日游全攻略,详细路线都在这!
了解汽车暖风工作原理,不要让尾气成为暖风的源头!
SQL窗口函数完全指南:从基础概念到实战应用
不同颜色的防冻液到底能不能使用
探索消化酵素的奧秘:從食物到營養的神奇轉化
志愿填报内参:合肥工业大学2024年高考录取分数线预测
水下无线通信装备发展研究
常微分方程的二阶泰勒数值解法及Matlab程序及案例
如何正确抽雪茄:体验生活艺术与细节的完美结合
云上金华营业执照网上申请流程-企业开办掌上通
舌苔发黄口臭怎么治疗
6类食材烹调前一定要焯水,详细攻略来啦
异地用工中的劳动关系是怎么形成的
阳朔强化交通基建,赋能全域旅游高质量发展
中国古代教育制度的起步:传承与变革的历史之旅
如何正确使用不锈钢波纹管?
全国首例AI生成声音人格权侵权案、AI陪伴案判决结果出炉
揭秘历史迷雾,美披露UFO目击事件调查计划:超过1.2万起
股票是买公司什么?新手必读的股票投资指南
AI数字人视频制作指南:如何利用AI数字人提升生活质量
酒吧装潢秘籍:如何平衡美学与舒适性的终极指南
中国的北斗卫星导航和美国的GPS相比,哪个更有优势?
医疗事故的处理有哪些途径
生态旅游新选择:大庆三大精品路线全攻略
“社恐”的我怎么才能自在地与人交往
好吃广东 味在揭阳|埔田竹笋