Browse Source

initial project commit

vollständige_und_weitere_testate
hertero 3 years ago
committed by chris
parent
commit
7c52c10f05
  1. 8
      SimpleLinkedList/.classpath
  2. 17
      SimpleLinkedList/.project
  3. 45
      SimpleLinkedList/src/solution/Node.java
  4. 92
      SimpleLinkedList/src/solution/SimpleLinkedList.java
  5. 16
      SimpleLinkedList/src/solution/SimpleLinkedListTest.java

8
SimpleLinkedList/.classpath

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>
<classpathentry kind="lib" path="C:/Users/planuser/Downloads/2017_WS_OOP_90.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

17
SimpleLinkedList/.project

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>SimpleLinkedList</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

45
SimpleLinkedList/src/solution/Node.java

@ -0,0 +1,45 @@
package solution;
public class Node <E>{
private Node<E> predecessor; // Vorgänger
private Node<E> successor; // Nachfolger
private E payload; // Nutzlast
public Node(E payload) {
this.payload = payload;
}
public Node<E> getPredecessor() {
return predecessor;
}
public void setPredecessor(Node<E> predecessor) {
this.predecessor = predecessor;
}
public Node<E> getSuccessor() {
return successor;
}
public void setSuccessor(Node<E> e) {
this.successor = e;
}
public E getPayload() {
return payload;
}
public void setPayload(E payload) {
this.payload = payload;
}
}

92
SimpleLinkedList/src/solution/SimpleLinkedList.java

@ -0,0 +1,92 @@
package solution;
//2017_OOP_90.jar importieren die von Bayer in der Aufgabenstellung zur Verfügung gestellt wird.
import testat.*;
public class SimpleLinkedList<E> extends AbstractSimpleList<E> {
Node<E> ersteKnoten;
int size;
public SimpleLinkedList() {
ersteKnoten = null;
size = 0;
}
@Override
public int size() {
return size;
}
@Override
public boolean add(E e) {
if (e == null) {
return false;
} else {
Node<E> neuerKnoten = new Node<>(e);
if (ersteKnoten == null) {
ersteKnoten = neuerKnoten;
}
else {
Node<E> aktuellerKnoten = ersteKnoten;
while(aktuellerKnoten != null) {
aktuellerKnoten = aktuellerKnoten.getSuccessor();
}
aktuellerKnoten.setSuccessor(neuerKnoten);
aktuellerKnoten.setPredecessor(aktuellerKnoten);
}
}
size++;
return true;
}
@Override
public boolean remove(Object o) {
if(o == null) {
return false;
}
Node<E> aktuellerKnoten = ersteKnoten;
while(aktuellerKnoten != null) {
aktuellerKnoten = aktuellerKnoten.getSuccessor();
}
if(o.equals(aktuellerKnoten)) {
aktuellerKnoten.setPayload(null);
size--;
aktuellerKnoten = aktuellerKnoten.getPredecessor();
return true;
}
return false;
}
@Override
public boolean contains(Object o) {
if(o == null) {
return false;
}
Node<E> aktuellerKnoten = ersteKnoten;
while(aktuellerKnoten != null) {
aktuellerKnoten = aktuellerKnoten.getSuccessor();
}
if(o.equals(aktuellerKnoten)) {
return true;
}
return false;
}
@Override
public void forAll(ICommand<E> command) {
if(command != null) {
Node<E> aktuellerKnoten = ersteKnoten;
while(aktuellerKnoten != null) {
command.execute(aktuellerKnoten.getPayload());
aktuellerKnoten = aktuellerKnoten.getSuccessor();
}
}
}
}

16
SimpleLinkedList/src/solution/SimpleLinkedListTest.java

@ -0,0 +1,16 @@
package solution;
import testat.*;
public class SimpleLinkedListTest extends SimpleListTest90{
@Override
protected ISimpleList<Integer> getInstance1() {
return new SimpleLinkedList<>();
}
@Override
protected ISimpleList<Ticket<Integer>> getInstance2() {
return new SimpleLinkedList<>();
}
}
Loading…
Cancel
Save