Guten Abend , ich weiß habe viele fragen sorry dafür
Bei mir funktioniert die Verkettung iwie nicht , die 12 wird übersprungen und bei der iter() Methode komme ich in einer endlosschleife ..
Bei der verkettung ist das doch theortischeinfach , von der ersten liste this,ende.nächster = neu.anfang und this.ende=neu.ende
Vergisst die anderen Methoden habe viele mehrfach als Übung also geht es hierbei um die Methode verkeeeetten()
Bei mir funktioniert die Verkettung iwie nicht , die 12 wird übersprungen und bei der iter() Methode komme ich in einer endlosschleife ..
Bei der verkettung ist das doch theortischeinfach , von der ersten liste this,ende.nächster = neu.anfang und this.ende=neu.ende
Vergisst die anderen Methoden habe viele mehrfach als Übung also geht es hierbei um die Methode verkeeeetten()
Java:
public class Link {
public int wert ;
public Link nächster;
public Link(int wert , Link nächster) {
this.wert=wert;
this.nächster=nächster;
}
}
public class Liste {
public Link anfang;
public Link ende;
public Liste(Link anfang) {
this.anfang = anfang;
this.ende = anfang;
}
public void add(Link neu) {
if (this.anfang == null) {
this.anfang = neu;
this.ende=neu;
} else {
this.ende.nächster = neu;
ende = ende.nächster;
}
}
public void iter() {
Link a = anfang;
while (a != null) {
System.out.print(a.wert + " ");
a = a.nächster;
}
}
public void anzEl() {
Link a = anfang;
int count = 0;
while (a != null) {
++count;
a = a.nächster;
}
System.out.println("Die liste besitzt " + count + " an Elementen");
}
public void fügeWertein(int value) {
Link neu = new Link(value,null);
Link a = anfang;
while(a.nächster!=null) {
if(a.wert==value) {
System.out.println("Wert schon vorhanden");
return;
}
a=a.nächster;
}
a.nächster=neu;
}
public boolean findWert(int wert) {
Link a = anfang;
while (a != null) {
if (a.wert == wert) {
return true;
}
a = a.nächster;
}
return false;
}
public void verketten(Liste neu) {
this.ende.nächster = neu.anfang;
this.ende = neu.ende;
}
public Liste kopieren(Liste alt) {
Link a = anfang;
Liste neu = new Liste(a);
while (a != null) {
System.out.print(a.wert + " ");
a = a.nächster;
}
return neu;
}
public void aaaad(Link neu) {
if (this.anfang == null) {
this.anfang = neu;
}
if (this.anfang != null) {
this.ende.nächster = neu;
this.ende = ende.nächster;
}
}
public void aaaaaaaaaaad(int wert) {
Link neu = new Link(wert, null);
if (this.anfang == null) {
this.anfang = neu;
} else {
this.ende.nächster = neu;
this.ende = ende.nächster;
}
}
public Liste coooopy() {
Link a = anfang;
Liste neu = new Liste(a);
while (a != null) {
System.out.print(a.wert + " ");
a = a.nächster;
}
return neu;
}
public void loescheWert(int wert) {
Link a = anfang ;
while(a.nächster!=null ) {
if(a.wert==wert) {
try {
a.nächster=a.nächster.nächster;
}
catch(Exception e) {
a.nächster=null;
ende=a;
}
}
a=a.nächster;
}
}
public void aaaaaaaaddd(int wert) {
Link neu = new Link(wert,null);
if(this.anfang==null) {
this.anfang=neu;
this.ende=neu;
}
else {
this.ende.nächster=neu;
this.ende=this.ende.nächster;
}
}
public void verkeeeetten(Liste neu) {
if(this.anfang==null) {
this.anfang=neu.anfang;
}
else {
this.ende.nächster=neu.anfang;
this.ende=neu.ende;
System.out.print(this.ende.nächster.wert + " ");
System.out.print(this.ende.wert+ " ");
neu.anfang=null;
neu.ende=null;
}
}
}
public class Main {
public static void main(String[] args) {
Link eins = new Link(1, null);
Link zwei = new Link(2, null);
Link drei = new Link(1, null);
Link a = new Link(100, null);
Link b = new Link(12, null);
Link c = new Link(3, null);
Liste list = new Liste(eins);
Liste list2 = new Liste(a);
list.add(eins);
list.add(zwei);
list.add(drei);
list.aaaad(c);
// list.aaaaaaaaaaad(999);
list2.add(b);
list2.add(c);
list.iter();
System.out.println();
// list.fügeWertein(2);
// list.fügeWertein(100);
// System.out.println();
//// System.out.println(list.findWert(2));
// list.verketten(list2);
list.iter();
// System.out.println( list2.kopieren(list)
// list.iter();
// list.coooopy();
// list.loescheWert(2);
// list.iter();
list.verkeeeetten(list2);
list.iter();
}
}
Zuletzt bearbeitet von einem Moderator: