Initial sharing of project
commit
aa06e9a9bd
|
@ -0,0 +1,86 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Beschreiben Sie hier die Klasse LinkedList.
|
||||||
|
*
|
||||||
|
* @author (Ihr Name)
|
||||||
|
* @version (eine Versionsnummer oder ein Datum)
|
||||||
|
*/
|
||||||
|
public class LinkedList<T>
|
||||||
|
{
|
||||||
|
public Node<T> first;
|
||||||
|
public LinkedList(){
|
||||||
|
}
|
||||||
|
|
||||||
|
public void einfuegen (T neu) {
|
||||||
|
Node<T> n = new Node<T>(neu);//Neue Node mit Zahl "neu " anlegen
|
||||||
|
|
||||||
|
//Überprüfe ob die liste leer ist
|
||||||
|
if(first == null){
|
||||||
|
//setze neue node als erster Eintrag
|
||||||
|
first = n;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Node<T> current = first;
|
||||||
|
|
||||||
|
while(current.next != null){
|
||||||
|
current = current.next;
|
||||||
|
}
|
||||||
|
current.setNext(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
//current ist jetzt der letzte Eintrag
|
||||||
|
//setze neue Node als Nachfolger von bisher letztem Eintrag
|
||||||
|
}
|
||||||
|
|
||||||
|
public int laenge(){
|
||||||
|
Node current = first;
|
||||||
|
int laenge = 0;
|
||||||
|
while(current != null){
|
||||||
|
current = current.next;
|
||||||
|
laenge++;
|
||||||
|
}
|
||||||
|
return laenge;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public T getNteZahl(int n){
|
||||||
|
Node<T> current = first;
|
||||||
|
for(int i = 0; i<n; i++){
|
||||||
|
current = current.next;
|
||||||
|
}
|
||||||
|
return current.wert;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void loesche(int n){
|
||||||
|
Node<T> current = first;
|
||||||
|
|
||||||
|
//gehe an den Vorgänger des zu löschenden Eintrags
|
||||||
|
for(int i=0; i<n-1; i++){
|
||||||
|
current = current.next;
|
||||||
|
}
|
||||||
|
//setze Übernächsten Eintrag als Nachfolger
|
||||||
|
current.next = current.next.next;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void hinzufügen(int n, T wert){
|
||||||
|
|
||||||
|
Node<T> neu = new Node<T>(wert);
|
||||||
|
if(n==0){
|
||||||
|
//setze Nachfolger auf bisherigen Stand
|
||||||
|
neu.setNext(first);
|
||||||
|
//setze neuen Start auf neuen
|
||||||
|
first = neu;
|
||||||
|
}else{
|
||||||
|
Node<T> current = first;
|
||||||
|
//gehe an den Vorgänger des zu löschenden Eintrags
|
||||||
|
for(int i=0; i<n-1; i++){
|
||||||
|
current = current.next;
|
||||||
|
}
|
||||||
|
//setze Übernächsten Eintrag als Nachfolger
|
||||||
|
current.next = current.next.next;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,87 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Beschreiben Sie hier die Klasse List.
|
||||||
|
*
|
||||||
|
* @author (Ihr Name)
|
||||||
|
* @version (eine Versionsnummer oder ein Datum)
|
||||||
|
*/
|
||||||
|
public class List<T>
|
||||||
|
{
|
||||||
|
public Node<T> first;
|
||||||
|
public List(){
|
||||||
|
}
|
||||||
|
|
||||||
|
public void einfuegen (T neu) {
|
||||||
|
Node<T> n = new Node<T>(neu);//Neue Node mit Zahl "neu " anlegen
|
||||||
|
|
||||||
|
//Überprüfe ob die liste leer ist
|
||||||
|
if(first == null){
|
||||||
|
//setze neue node als erster Eintrag
|
||||||
|
first = n;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Node<T> current = first;
|
||||||
|
|
||||||
|
while(current.next != null){
|
||||||
|
current = current.next;
|
||||||
|
}
|
||||||
|
current.setNext(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
//current ist jetzt der letzte Eintrag
|
||||||
|
//setze neue Node als Nachfolger von bisher letztem Eintrag
|
||||||
|
}
|
||||||
|
|
||||||
|
public int laenge(){
|
||||||
|
Node current = first;
|
||||||
|
int laenge = 0;
|
||||||
|
while(current != null){
|
||||||
|
current = current.next;
|
||||||
|
laenge++;
|
||||||
|
}
|
||||||
|
return laenge;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public T getNteZahl(int n){
|
||||||
|
Node<T> current = first;
|
||||||
|
for(int i = 0; i<n; i++){
|
||||||
|
current = current.next;
|
||||||
|
}
|
||||||
|
return current.wert;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void loesche(int n){
|
||||||
|
Node<T> current = first;
|
||||||
|
|
||||||
|
//gehe an den Vorgänger des zu löschenden Eintrags
|
||||||
|
for(int i=0; i<n-1; i++){
|
||||||
|
current = current.next;
|
||||||
|
}
|
||||||
|
//setze Übernächsten Eintrag als Nachfolger
|
||||||
|
current.next = current.next.next;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void hinzufügen(int n, T wert){
|
||||||
|
|
||||||
|
Node<T> neu = new Node<T>(wert);
|
||||||
|
if(n==0){
|
||||||
|
//setze Nachfolger auf bisherigen Stand
|
||||||
|
neu.setNext(first);
|
||||||
|
//setze neuen Start auf neuen
|
||||||
|
first = neu;
|
||||||
|
}else{
|
||||||
|
Node<T> current = first;
|
||||||
|
//gehe an den Vorgänger des zu löschenden Eintrags
|
||||||
|
for(int i=0; i<n-1; i++){
|
||||||
|
current = current.next;
|
||||||
|
}
|
||||||
|
//setze Übernächsten Eintrag als Nachfolger
|
||||||
|
current.next = current.next.next;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Beschreiben Sie hier die Klasse Menge.
|
||||||
|
*
|
||||||
|
* @author (Ihr Name)
|
||||||
|
* @version (eine Versionsnummer oder ein Datum)
|
||||||
|
*/
|
||||||
|
public class Menge<T>
|
||||||
|
{
|
||||||
|
public Node<T> first;
|
||||||
|
public Menge(){
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean contains(T n){
|
||||||
|
Node<T> current = first;
|
||||||
|
while (current != null){
|
||||||
|
if(current.wert == n){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public void add (T neu) {
|
||||||
|
Node<T> n = new Node<T>(neu);//Neue Node mit Zahl "neu " anlegen
|
||||||
|
|
||||||
|
if(contains(neu) == false){//Überprüfe ob die liste leer ist
|
||||||
|
if(first == null){
|
||||||
|
//setze neue node als erster Eintrag
|
||||||
|
first = n;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Node<T> current2 = first;
|
||||||
|
|
||||||
|
while(current2.next != null){
|
||||||
|
current2 = current2.next;
|
||||||
|
}
|
||||||
|
current2.setNext(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
//current ist jetzt der letzte Eintrag
|
||||||
|
//setze neue Node als Nachfolger von bisher letztem Eintrag
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void remove(T neu){
|
||||||
|
Node<T> n = new Node<T>(neu);
|
||||||
|
Node<T> current = first;
|
||||||
|
while(current.next.wert != n){
|
||||||
|
current = current.next;
|
||||||
|
}
|
||||||
|
current.next = current.next.next;
|
||||||
|
}
|
||||||
|
public Menge<T> intersection(Menge<T> s){
|
||||||
|
Menge<T> neu = new Menge<T>();
|
||||||
|
Node<T> current = first;
|
||||||
|
while(current != null){
|
||||||
|
current = current.next;
|
||||||
|
if(s.contains(current.wert) == true){
|
||||||
|
neu.add(current.wert);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return neu;
|
||||||
|
}
|
||||||
|
public Menge<T> union(Menge<T> s){
|
||||||
|
Menge<T> neu = new Menge<T>();
|
||||||
|
Node<T> current = first;
|
||||||
|
while(current != null){
|
||||||
|
neu.add(current.wert);
|
||||||
|
current = current.next;
|
||||||
|
}
|
||||||
|
Node<T> current2 = first;
|
||||||
|
while(current != null){
|
||||||
|
neu.add(current2.wert);
|
||||||
|
current = current.next;
|
||||||
|
}
|
||||||
|
return neu;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Beschreiben Sie hier die Klasse Node.
|
||||||
|
*
|
||||||
|
* @author (Ihr Name)
|
||||||
|
* @version (eine Versionsnummer oder ein Datum)
|
||||||
|
*/
|
||||||
|
public class Node<T>
|
||||||
|
{
|
||||||
|
|
||||||
|
public T wert;
|
||||||
|
|
||||||
|
public Node<T> next;
|
||||||
|
|
||||||
|
public Node(T z){
|
||||||
|
wert = z;
|
||||||
|
}
|
||||||
|
public void setNext(Node n){
|
||||||
|
next = n;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,71 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Beschreiben Sie hier die Klasse Queue.
|
||||||
|
*
|
||||||
|
* @author (Ihr Name)
|
||||||
|
* @version (eine Versionsnummer oder ein Datum)
|
||||||
|
*/
|
||||||
|
public class Queue<T>
|
||||||
|
{
|
||||||
|
public Node<T> first;
|
||||||
|
|
||||||
|
public Queue(){
|
||||||
|
}
|
||||||
|
public boolean isEmpty(){
|
||||||
|
if(first == null){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public void enqueue (T neu) {
|
||||||
|
Node<T> r = new Node<T>(neu);//Neue Node mit Zahl "neu " anlegen
|
||||||
|
|
||||||
|
//Überprüfe ob die liste leer ist
|
||||||
|
if(first == null){
|
||||||
|
//setze neue node als erster Eintrag
|
||||||
|
first = r;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Node<T> current = first;
|
||||||
|
|
||||||
|
while(current.next != null){
|
||||||
|
current = current.next;
|
||||||
|
}
|
||||||
|
current.setNext(r);
|
||||||
|
}
|
||||||
|
|
||||||
|
//current ist jetzt der letzte Eintrag
|
||||||
|
//setze neue Node als Nachfolger von bisher letztem Eintrag
|
||||||
|
}
|
||||||
|
|
||||||
|
public int laenge(){
|
||||||
|
Node current = first;
|
||||||
|
int laenge = 0;
|
||||||
|
while(current != null){
|
||||||
|
current = current.next;
|
||||||
|
laenge++;
|
||||||
|
}
|
||||||
|
return laenge;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public T dequeue(){
|
||||||
|
if(first == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
Node<T> current = first;
|
||||||
|
first = first.next;
|
||||||
|
return current.wert;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public T front(){
|
||||||
|
|
||||||
|
return first.wert;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Dies ist die README-Datei des Projekts. Hier sollten Sie Ihr Projekt
|
||||||
|
beschreiben.
|
||||||
|
Erzählen Sie dem Leser (jemand, der nichts über dieses Projekt weiss),
|
||||||
|
alles, was er/sie wissen muss. Üblicherweise sollte der Kommentar
|
||||||
|
zumindest die folgenden Angaben umfassen:
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
PROJEKTBEZEICHNUNG:
|
||||||
|
PROJEKTZWECK:
|
||||||
|
VERSION oder DATUM:
|
||||||
|
WIE IST DAS PROJEKT ZU STARTEN:
|
||||||
|
AUTOR(EN):
|
||||||
|
BENUTZERHINWEISE:
|
|
@ -0,0 +1,68 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Beschreiben Sie hier die Klasse Stack.
|
||||||
|
*
|
||||||
|
* @author (Ihr Name)
|
||||||
|
* @version (eine Versionsnummer oder ein Datum)
|
||||||
|
*/
|
||||||
|
public class Stack<T>
|
||||||
|
{
|
||||||
|
public Node<T> first;
|
||||||
|
|
||||||
|
public Stack(){
|
||||||
|
}
|
||||||
|
public boolean isEmpty(){
|
||||||
|
if(first == null){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public void push (T neu) {
|
||||||
|
Node<T> n = new Node<T>(neu);//Neue Node mit Zahl "neu " anlegen
|
||||||
|
|
||||||
|
//Überprüfe ob die liste leer ist
|
||||||
|
if(first == null){
|
||||||
|
//setze neue node als erster Eintrag
|
||||||
|
first = n;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Node<T> current = first;
|
||||||
|
|
||||||
|
while(current.next != null){
|
||||||
|
current = current.next;
|
||||||
|
}
|
||||||
|
current.setNext(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
//current ist jetzt der letzte Eintrag
|
||||||
|
//setze neue Node als Nachfolger von bisher letztem Eintrag
|
||||||
|
}
|
||||||
|
|
||||||
|
public int laenge(){
|
||||||
|
Node current = first;
|
||||||
|
int laenge = 0;
|
||||||
|
while(current != null){
|
||||||
|
current = current.next;
|
||||||
|
laenge++;
|
||||||
|
}
|
||||||
|
return laenge;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public T pop(){
|
||||||
|
if(first == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
Node<T> current = first;
|
||||||
|
first = first.next;
|
||||||
|
return current.wert;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public T top(){
|
||||||
|
|
||||||
|
return first.wert;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,95 @@
|
||||||
|
#BlueJ package file
|
||||||
|
dependency1.from=Menge
|
||||||
|
dependency1.to=Node
|
||||||
|
dependency1.type=UsesDependency
|
||||||
|
dependency2.from=List
|
||||||
|
dependency2.to=Node
|
||||||
|
dependency2.type=UsesDependency
|
||||||
|
dependency3.from=Queue
|
||||||
|
dependency3.to=Node
|
||||||
|
dependency3.type=UsesDependency
|
||||||
|
dependency4.from=LinkedList
|
||||||
|
dependency4.to=Node
|
||||||
|
dependency4.type=UsesDependency
|
||||||
|
dependency5.from=Stack
|
||||||
|
dependency5.to=Node
|
||||||
|
dependency5.type=UsesDependency
|
||||||
|
dependency6.from=test
|
||||||
|
dependency6.to=Node
|
||||||
|
dependency6.type=UsesDependency
|
||||||
|
dependency7.from=test
|
||||||
|
dependency7.to=Queue
|
||||||
|
dependency7.type=UsesDependency
|
||||||
|
editor.fx.0.height=728
|
||||||
|
editor.fx.0.width=800
|
||||||
|
editor.fx.0.x=1060
|
||||||
|
editor.fx.0.y=217
|
||||||
|
objectbench.height=100
|
||||||
|
objectbench.width=776
|
||||||
|
package.divider.horizontal=0.6
|
||||||
|
package.divider.vertical=0.8003731343283582
|
||||||
|
package.editor.height=422
|
||||||
|
package.editor.width=661
|
||||||
|
package.editor.x=289
|
||||||
|
package.editor.y=511
|
||||||
|
package.frame.height=600
|
||||||
|
package.frame.width=800
|
||||||
|
package.numDependencies=7
|
||||||
|
package.numTargets=7
|
||||||
|
package.showExtends=true
|
||||||
|
package.showUses=true
|
||||||
|
project.charset=UTF-8
|
||||||
|
readme.height=60
|
||||||
|
readme.name=@README
|
||||||
|
readme.width=48
|
||||||
|
readme.x=10
|
||||||
|
readme.y=10
|
||||||
|
target1.height=70
|
||||||
|
target1.name=test
|
||||||
|
target1.showInterface=false
|
||||||
|
target1.type=ClassTarget
|
||||||
|
target1.width=120
|
||||||
|
target1.x=220
|
||||||
|
target1.y=260
|
||||||
|
target2.height=70
|
||||||
|
target2.name=Node
|
||||||
|
target2.showInterface=false
|
||||||
|
target2.type=ClassTarget
|
||||||
|
target2.width=120
|
||||||
|
target2.x=70
|
||||||
|
target2.y=10
|
||||||
|
target3.height=70
|
||||||
|
target3.name=Menge
|
||||||
|
target3.showInterface=false
|
||||||
|
target3.type=ClassTarget
|
||||||
|
target3.width=120
|
||||||
|
target3.x=160
|
||||||
|
target3.y=90
|
||||||
|
target4.height=70
|
||||||
|
target4.name=List
|
||||||
|
target4.showInterface=false
|
||||||
|
target4.type=ClassTarget
|
||||||
|
target4.width=120
|
||||||
|
target4.x=160
|
||||||
|
target4.y=170
|
||||||
|
target5.height=70
|
||||||
|
target5.name=Queue
|
||||||
|
target5.showInterface=false
|
||||||
|
target5.type=ClassTarget
|
||||||
|
target5.width=120
|
||||||
|
target5.x=10
|
||||||
|
target5.y=220
|
||||||
|
target6.height=70
|
||||||
|
target6.name=LinkedList
|
||||||
|
target6.showInterface=false
|
||||||
|
target6.type=ClassTarget
|
||||||
|
target6.width=120
|
||||||
|
target6.x=30
|
||||||
|
target6.y=140
|
||||||
|
target7.height=70
|
||||||
|
target7.name=Stack
|
||||||
|
target7.showInterface=false
|
||||||
|
target7.type=ClassTarget
|
||||||
|
target7.width=120
|
||||||
|
target7.x=10
|
||||||
|
target7.y=300
|
|
@ -0,0 +1,49 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Beschreiben Sie hier die Klasse test.
|
||||||
|
*
|
||||||
|
* @author (Ihr Name)
|
||||||
|
* @version (eine Versionsnummer oder ein Datum)
|
||||||
|
*/
|
||||||
|
public class test
|
||||||
|
{
|
||||||
|
public static void test(){
|
||||||
|
Node<String> test = new Node<String>("Hallo");
|
||||||
|
Node<Integer> test2 = new Node<Integer>(5);
|
||||||
|
|
||||||
|
|
||||||
|
Queue<Integer> liste = new Queue<Integer>();
|
||||||
|
/*liste.einfuegen(5);
|
||||||
|
liste.einfuegen(6);
|
||||||
|
liste.einfuegen(8);
|
||||||
|
liste.einfuegen(3);
|
||||||
|
liste.einfuegen(7);
|
||||||
|
liste.einfuegen(9);
|
||||||
|
liste.loesche(2);
|
||||||
|
liste.hinzufügen(4,"wirklich");*/
|
||||||
|
liste.enqueue(7);
|
||||||
|
liste.enqueue(4);
|
||||||
|
liste.enqueue(8);
|
||||||
|
liste.enqueue(2);
|
||||||
|
liste.enqueue(0);
|
||||||
|
liste.enqueue(4);
|
||||||
|
int Selection = liste.dequeue();
|
||||||
|
System.out.println("Die Zahl " +Selection+" wurde entfernt.");
|
||||||
|
int Selection2 = liste.dequeue();
|
||||||
|
System.out.println("Die Zahl " +Selection2+" wurde entfernt.");
|
||||||
|
int Angabe = liste.front();
|
||||||
|
System.out.println("Aktuell ist die erste Zahl " +Angabe+".");
|
||||||
|
Node current = liste.first;
|
||||||
|
|
||||||
|
while(current != null){
|
||||||
|
System.out.println( current.wert );
|
||||||
|
current = current.next;
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("Die Liste hat "+liste.laenge()+" Einträge. ");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue