第十三天算法设计
Node类:
用于定义链表中的节点,包含数据和指向下一个节点的引用。
java
package suanfa;
public class Node {
public Comparable data;
public Node next;
public Node(Comparable data) {
this.data = data;
this.next = null;
}
}
CircularLinkedList类:
包含循环链表的核心逻辑,如添加节点和打印链表。
java
package suanfa;
public class CircularLinkedList {
private Node head; // 链表的头节点
public CircularLinkedList() {
this.head = null;
}
// 向链表添加节点
public void add(Comparable data) {
Node newNode = new Node(data);
if (head == null) {
head = newNode; // 如果链表为空,新的节点即为头节点
newNode.next = head; // 指向自身,形成循环
} else {
Node current = head;
while (current.next != head) { // 遍历到链表的尾节点
current = current.next;
}
current.next = newNode; // 将新节点添加到链表末尾
newNode.next = head; // 新节点的next指向头节点,保持循环链表的结构
}
}
// 打印循环链表的内容
public void printList() {
if (head == null) {
System.out.println("List is empty");
return;
}
Node current = head;
do {
System.out.print(current.data + " ");
current = current.next;
} while (current != head); // 当回到头节点时停止遍历
System.out.println();
}
}
CircularLinkedListTest类:
用于测试循环链表的操作,包括添加节点并打印链表。
java
package suanfa;
public class CircularLinkedListTest {
public static void main(String[] args) {
// 创建一个新的循环链表
CircularLinkedList list = new CircularLinkedList();
// 向链表添加节点
list.add(4);
list.add(5);
list.add(6);
list.add(3);
list.add(2);
list.add(1);
// 打印链表
System.out.println("Circular Linked List:");
list.printList(); // 输出 4 5 6 3 2 1,形成一个环
}
}
录制: untitled2 – Insertion.java
录制文件:https://meeting.tencent.com/crm/KzGGkGE85d
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本