doppelt verkettete Liste

Ruebe

Grünschnabel
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

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:
Hallo Ruebe

Welcher Teil funktioniert nicht? Eine Liste besteht ja grundsätzlich aus mehreren Teiloperationen. Ich weiss nicht ob es ein Tippfehler ist, aber auf Zeile 132 hast du Code der im nirgendwo ist.

Grüsse
Cromon
 

Neue Beiträge

Zurück