Я должен создать метод для устранения номера в кольцевом связанный списке говорит, что мы имеем значение до 9
Java Круговые Связанный список
1 2 3 4 5 6 7 8 9
, и мы хотим, чтобы постоянно удалять все 4-е числа, проходящее через, это будет идти как следует
5 6 7 8 9 1 2 3; // 4 is removed
9 1 2 3 5 6 7; // 8 is removed
5 6 7 9 1 2; // 3 is removed
1 2 5 6 7; // 9 is removed
7 1 2 5; // 6 is removed
7 1 2; // 5 is removed
1 2; // 7 is removed
1; // 2 is removed
Я должен создать движение, чтобы пройти через элементы, и устранить, чтобы удалить элемент, но я могу сделать это самостоятельно. У меня проблема с моим toString(); метод, я в настоящее время не возвращаю никакой ценности.
class Digit{
class DigitNode
{
public int num=0; // Digit's position in line
public DigitNode next=null; // Reference to next digit
/**
* Digit constructor, initializes number
*/
public DigitNode(int number)
{
//
num = number;
next = null;
}
}
private int number;
private DightNode current = null; // Linked list of digits
private DigitNode tail = null; // Tracks end of list as it is constructed
/**
* constructs a circular linked list of
* @param n DigitNodes, current is the first DigitNode and tail is the last DigitNode(next of tail is current)
*/
public Digit(int n)
{
//
number = n;
current = null;
tail = null;
}
/*
* prints all Digits starting from current until tail
*/
@Override
public String toString()
{
//
String strVal = "";
DigitNode position = current;
while (position != null) {
strVal = strVal + position + " ";
position = current.next;
}
return strVal;
}
Для меня, я понимаю, что я задаю позиции в качестве текущего значения, которое должно быть 1
, таким образом, в то время как позиция не null
, strVal
быть позиция [1]
+ " "
для интервала. тогда я называю положение следующим значением, которое равно [2]
, и я продолжаю до null
, который после 9
. Таким образом, strVal
должен быть 1 2 3 4 5 6 7 8 9
. Но я ничего не возвращаю, к сожалению, я пробовал отлаживать и помещал некоторые маркеры System.out.prinln();
, чтобы увидеть, возвращаю ли я что-нибудь, но я не был.
вам нужно иметь метод ToString в вашем DigitNode : public String toString {return "" + number; } – kiruwka
Я сделал это, но все равно получаю тот же результат. могу ли я спросить @kiruwka, что делает реализация метода toString() во внутреннем классе DigitNode? – user3011391
смотрите мой ответ. Вы фактически добавляли в свой список любые Узлы и обновляли 'current' перед печатью? – kiruwka