Hey ich solle eine doppelt verkettete Liste erstellen, die Funktionier aber nicht ganz kann mir wer helfen?
In Zeile 132 habe ich versucht die andere delete methode auf zu rufen
In Zeile 123 kommt der Fehler error: <identifier> expected
In Zeile 126,128, 131 und 133 kommt der fehelr error: class, interface, or enum expected
Ich weiß nicht genau was die Fehler zu bedeuten haben und wie ich das losen kann
Bitte um Hilfe
In Zeile 132 habe ich versucht die andere delete methode auf zu rufen
In Zeile 123 kommt der Fehler error: <identifier> expected
In Zeile 126,128, 131 und 133 kommt der fehelr error: class, interface, or enum expected
Ich weiß nicht genau was die Fehler zu bedeuten haben und wie ich das losen kann
Bitte um Hilfe
Code:
interface SimpleCollection<T>{
public int size();
public void push_back(T arg);
public void push_front(T arg);
public T get(int i);
public void set(int i,T arg);
public void delete(int i);
}
class DoppeltListe<T> implements SimpleCollection<T>{
private ListElem m_Head;
class ListElem<T>{
private ListElem m_Next;
private ListElem m_Prev;
private T m_Elem;
public ListElem(T obj,ListElem next,ListElem prev){
m_Next = next; //m_Next ist Nachfolger
m_Prev = prev; //m_Prev ist Vorgänger
m_Elem = obj;
if(m_Next != null) // wenn es das nächste Element gibt, dann bin ich der Vorgänger von meinem nächsten
m_Next.setPrev(this);
if(m_Prev != null) //wenn es das vorherige Element gibt, dann bin ich der Nachfolger von meinem Vorherigen
m_Prev.setNext(this);
}
public T getElement(){
return m_Elem;
}
public ListElem getNext(){
return m_Next;
}
public ListElem getPrev(){
return m_Prev;
}
public void setNext(ListElem next){
m_Next = next;
}
public void setPrev(ListElem prev){
m_Prev = prev;
}
}
public DoppeltListe(){
m_Head = null;
}
public void print(){
for(ListElem elem = m_Head; elem != null;elem = elem.getNext()){
System.out.print(elem.getElement() + "\t");
}
for(ListElem elem = m_Head; elem != null;elem = elem.getPrev()){
System.out.print(elem.getElement() + "\t");
}
}
public void add(T obj){
m_Head = new ListElem(obj, m_Head,null);
}
void delete(ListElem elem2Delete){
if(elem2Delete !=null){
if(m_Head == elem2Delete)
m_Head = elem2Delete.getNext();
if(elem2Delete.getPrev()!=null)
elem2Delete.getPrev().setNext(elem2Delete.getNext());
if(elem2Delete.getNext()!=null)
elem2Delete.getNext().setPrev(elem2Delete.getPrev());
}
}
public int size(){//mit schleife alle elmente zählen und dann i zurück geben
ListElem elem = m_Head;
int i=0;
while(elem != null){
i++;
elem = elem.getNext();
}
return i;
}
public void push_back(T arg){ //mit schleife auf letztes elemnt zeitgt und dann neues element erstellen mit wert T ein neues element hinten dran hängen mit setnext
if (m_Head == null)
add(arg);
else {
ListElem e = m_Head;
while(e.getNext() != null)
e = e.getNext();
e.m_Next = new ListElem(arg,null,e);
}
}
public void push_front(T arg){// add auf rufen
add(arg);
}
public T get(int i){ // mit schleife bis elment i lauf und zurückgeben
ListElem f = m_Head;
while(i != 0) {
i--;
f = f.getNext();
}
return f.m_Elem;
}
public void set(int i,T arg){ // mit schleife bis element i lauf und da T speichen
ListElem r = m_Head;
while(i != 0 )
i--;
r = r.getNext();
}
r.m_Elem = arg;
}
public void delete(int i){// mit schleife bis element i lauf und löschen ander delete methode auf rufen
ListElem w = m_Head;
while(i != 0)
i--;
}
w = w.delete();
}
public class Uebung2a{
public static void main(String[]args){
DoppeltListe<Integer> sl = new DoppeltListe<Integer>();
for(int i =-10;i < 10;i++){
sl.push_back(i);
}
sl.print();
}
}
Zuletzt bearbeitet: