gpt4 book ai didi

java - 大小为 K 的循环链表

转载 作者:行者123 更新时间:2023-12-01 13:49:03 26 4
gpt4 key购买 nike

我有一个关于创建单个 Circular Linked List 的问题没有添加方法。只是 Node 的内部类,然后是外部带有 toString 的构造函数方法。
我很难受returning List ,我总是什么也不返回。我不知道为什么,因为我无法实现添加方法。我必须在构造函数中创建一个循环链表,这样我就可以对它有一些了解。但是我如何将这些值分配给我的 Nodesheadtail

class Number{ 

class Node
{
public int num=0; // node's position in line
public Node next=null; // Reference to next node
/**
* Node constructor, initializes number
*/

public Node(int number)
{
//
num = number;
next = null;
}

public String toString() {
return "" + num;
}

}

private int number;
private Node head = null; // Linked list of prisoners
private Node tail = null; // Tracks end of list as it is constructed

/**
* constructs a circular linked list of
* @param n Nodes, current is the first Node and tail is the last Node (next of tail is current)
*/

public Number(int n)
{
//
number = n;
LinkedList numb1 = new LinkedList();
for (int i = 1; i <= number; i++) {
numb1.add(i) //head I will have 1, 2, 3... n
}
head = null; //how would I make this reference head?
tail = null; //how would I make this reference tail?
}

/*
* prints all Numbers starting from head until tail
*/
@Override
public String toString()
{
//
String strVal = "";
for (Node current = head; current != null; current = head.next) {
strVal = strVal + current.num;
}
return strVal;
}

我认为原因在于 loop
由有 current != null ,它会继续下去,因为 current 永远不会为 null,因为它是一个循环链表,因此它会无限引用。然而,它至少会返回一些东西,而不是什么也没有。

假设我打电话 Number newNum = new Number(6);
System.out.println(newNum);
我应该输出
1 2 3 4 5 6

最佳答案

采用这个数据结构

class CList {

int size;
CNode head;

class CNode {
int data;
CNode next;

}

}

在 CList 的构造函数中,将 head 初始化为 null,将 size 初始化为 0。

关于java - 大小为 K 的循环链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20113969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com