mirror of
https://github.com/MartinThoma/LaTeX-examples.git
synced 2025-04-26 06:48:04 +02:00
71 lines
1.7 KiB
Java
71 lines
1.7 KiB
Java
|
public class SinglyLinkedList {
|
||
|
|
||
|
Node head;
|
||
|
|
||
|
private boolean isEqual(Node node, int content) {
|
||
|
return node.container == content;
|
||
|
}
|
||
|
|
||
|
private Node findNode(int number) {
|
||
|
Node currentNode = head;
|
||
|
|
||
|
while (!isEqual(currentNode, number) && currentNode.next != null) {
|
||
|
currentNode = currentNode.next;
|
||
|
}
|
||
|
|
||
|
if (isEqual(currentNode, number)) {
|
||
|
return currentNode;
|
||
|
} else {
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void append(int number) {
|
||
|
Node toInsert = new Node(number);
|
||
|
toInsert.next = head;
|
||
|
head = toInsert;
|
||
|
|
||
|
/*
|
||
|
* schlecht: Node currentNode = head;
|
||
|
*
|
||
|
* while (currentNode.next != null) { currentNode = currentNode.next; }
|
||
|
* currentNode.next = n;
|
||
|
*/
|
||
|
}
|
||
|
|
||
|
public void remove(int number) {
|
||
|
Node previous = head;
|
||
|
Node currentNode = head;
|
||
|
|
||
|
while (!isEqual(currentNode, number) && currentNode.next != null) {
|
||
|
previous = currentNode;
|
||
|
currentNode = currentNode.next;
|
||
|
}
|
||
|
|
||
|
if (currentNode.next != null) {
|
||
|
previous.next = currentNode.next;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public int find(int number) {
|
||
|
Node node = findNode(number);
|
||
|
|
||
|
if (node == null) {
|
||
|
return 0;
|
||
|
} else {
|
||
|
return node.container;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void printList() {
|
||
|
Node currentNode = head;
|
||
|
System.out.print("head -> ");
|
||
|
while (currentNode != null) {
|
||
|
System.out.print(currentNode.container + " -> ");
|
||
|
currentNode = currentNode.next;
|
||
|
}
|
||
|
System.out.println("null");
|
||
|
}
|
||
|
}
|
||
|
|