Hallo,
ich möchte eine Methode void addNode() implementieren, die einen neuen Knoten an das ende der Liste (eine zyklische verkettete Liste) hinzufügt.Der Wert des neuen Knotens muss ich durch Inkrementieren der Variable int capacity, welche gleichzeitig die Knotenanzahl representiert. und eine andere void Josephus(int k) die sukzessiv den k-ten Knoten im Kresi entfernt bis der Kreis leer ist
dann noch die klasse mit den zu implementierenden Methoden
und letztendlich die klasse mit main
Mein Problem: in main wird add 40 mal aufgerufen, wie kann ich add so implementieren dass beim jeden aufruf nur ein Knote angefügt wird?
Danke sehr
ich möchte eine Methode void addNode() implementieren, die einen neuen Knoten an das ende der Liste (eine zyklische verkettete Liste) hinzufügt.Der Wert des neuen Knotens muss ich durch Inkrementieren der Variable int capacity, welche gleichzeitig die Knotenanzahl representiert. und eine andere void Josephus(int k) die sukzessiv den k-ten Knoten im Kresi entfernt bis der Kreis leer ist
Java:
class Node {
private Node next;
private int value;
Node () {}
Node (Node next, int value) {
this.next = next;
this.value = value;
}
public Node getNext() {
return next;
}
public int getValue() {
return value;
}
public void setNext(Node next) {
this.next = next;
}
public void setValue(int value) {
this.value = value;
}
}
dann noch die klasse mit den zu implementierenden Methoden
Java:
class CircularList {
private Node head, tail;
private int capacity;
CircularList() {
capacity = 0;
}
public boolean isEmpty() {
return capacity == 0;
}
public void addNode() {
// meine code
Node head = new Node(tail, capacity++);
Node teil = new Node(head, capacity++);
do{
capacity++;
Node newTile=new Node(head,capacity);//Erzeugt einen neuen Knoten für das Ende
teil.setNext(newTile);//Erzeugt eine Referenz auf den neuen Knoten
}while(capacity!=41);
}
public void Josephus (int k) {
Node iterator = head;
Node predecessor = tail;
// meine code
}
@Override
public String toString() {
String representation = "< circular list: ";
Node iterator = head;
for (int i = 0; i < capacity; i++) {
representation += iterator.getValue()+" ";
iterator = iterator.getNext();
}
return capacity == 0 ? "< empty circular list>" : representation+">";
}
}
und letztendlich die klasse mit main
Java:
public class Josephus {
public static void main(String args[]) {
CircularList cl = new CircularList();
for (int i = 0; i < 41; i++)
cl.addNode();
System.out.println(cl);
cl.Josephus(3);
}
}
Mein Problem: in main wird add 40 mal aufgerufen, wie kann ich add so implementieren dass beim jeden aufruf nur ein Knote angefügt wird?
Danke sehr