2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-26 06:48:04 +02:00

Added source files (Programmieren Tutorium)

This commit is contained in:
Martin Thoma 2013-11-05 19:39:03 +01:00
parent 1be8f17cc0
commit ad81fa802b
244 changed files with 8252 additions and 0 deletions

View file

@ -0,0 +1,46 @@
public class Node<E> {
private final E element;
private Node<E> next;
/**
* Constructor.
*
* @param element the element you want to add
*/
public Node(E element) {
this.element = element;
}
/**
* Getter for the content of this node.
*
* @return the element
*/
public E getElement() {
return element;
}
/**
* @return the next
*/
public Node<E> getNext() {
return next;
}
/**
* @param next the next to set
*/
public void setNext(Node<E> next) {
this.next = next;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Node[element=" + element + "]";
}
}

View file

@ -0,0 +1,90 @@
public class SinglyLinkedList<E> {
private Node<E> head;
/**
* Add an object to the list.
*
* @param object the element you want to add
*/
public void add(E object) {
Node<E> newNode = new Node<E>(object);
newNode.setNext(head);
head = newNode;
}
/**
* Check if object is in is in the SinglyLinkedList
*
* @param object the object you want to search
* @return the bike, if you found it, otherwise {@code null}
*/
public boolean contains(E object) {
Node<E> currentNode = head;
while (currentNode != null && currentNode.getElement().equals(object)) {
currentNode = currentNode.getNext();
}
return currentNode != null;
}
/**
* Get a bike.
*
* @param bike the bike you want to get
* @return
*/
public E get(E bike) {
if (contains(bike)) {
Node<E> currentNode = head;
while (currentNode.getElement() != bike) {
currentNode = currentNode.getNext();
}
return bike;
} else {
return null;
}
}
/**
* Remove bike from the SinglyLinkedList, if it exists.
*
* @param bike the bike you want to search
* @return {@code bike} if it is in SinglyLinkedList, otherwise {@code null}
*/
public E remove(E bike) {
if (!contains(bike)) {
return null;
} else if (head.getElement() == bike) {
head = head.getNext();
return bike;
} else {
// Knoten und Vorgängerknoten finden
Node<E> previousNode = head;
Node<E> currentNode = head;
while (currentNode.getElement() != bike) {
previousNode = currentNode;
currentNode = currentNode.getNext();
}
// Zeiger umbiegen
previousNode.setNext(currentNode.getNext());
return bike;
}
}
/**
* Print all bikes in SinglyLinkedList.
*/
public void printBikes() {
Node<E> currentNode = head;
System.out.print("start -> ");
while (currentNode != null) {
System.out.print(currentNode);
System.out.print(" -> ");
currentNode = currentNode.getNext();
}
System.out.println("null");
}
}