Queue+Stack
							parent
							
								
									fe6626297f
								
							
						
					
					
						commit
						2028acb069
					
				|  | @ -0,0 +1,67 @@ | ||||||
|  | public class Queue<T> | ||||||
|  | { | ||||||
|  |     /** | ||||||
|  |      * erster Eintrag der Liste | ||||||
|  |      */ | ||||||
|  |     public Node<T> first; | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Konstruktor | ||||||
|  |      */ | ||||||
|  |     public Queue() {} | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Überprüft, ob die Liste leer ist | ||||||
|  |      *  | ||||||
|  |      * @return true, wenn keine Elemente in der Liste | ||||||
|  |      */ | ||||||
|  |     public boolean isEmpty() { | ||||||
|  |         return first == null; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Fügt ein neues Element am Ende der Liste ein | ||||||
|  |      */ | ||||||
|  |     public void enqueue(T neu) { | ||||||
|  |         Node n = new Node<T>(neu); // Neue Node mit Wert "neu" anlegen
 | ||||||
|  |          | ||||||
|  |         // Überprüfe, ob Liste leer
 | ||||||
|  |         if (first == null) { | ||||||
|  |             // setze neue Node als ersten Eintrag
 | ||||||
|  |             first = n; | ||||||
|  |         } else { | ||||||
|  |             Node<T> current = first; | ||||||
|  |              | ||||||
|  |             // gehe zum letzten Eintrag
 | ||||||
|  |             while (current.next != null) { | ||||||
|  |                 current = current.next; | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             // current ist jetzt der letzte Eintrag
 | ||||||
|  |             // setze neue Node als Nachfolger von bisher letzem Eintrag
 | ||||||
|  |             current.setNext(n); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |          | ||||||
|  |     /** | ||||||
|  |      * Löscht das Element an der ersten Stelle und gibt | ||||||
|  |      * dessen Wert zurück | ||||||
|  |      */ | ||||||
|  |     public T dequeue() { | ||||||
|  |         if (first == null) return null; | ||||||
|  |          | ||||||
|  |         T wert = first.wert; | ||||||
|  |          | ||||||
|  |         first = first.next; | ||||||
|  |          | ||||||
|  |         return wert; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Gibt das Element an der ersten Stelle zurück, oder null | ||||||
|  |      */ | ||||||
|  |     public T front() { | ||||||
|  |         if (first == null) return null; | ||||||
|  |         return first.wert; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,52 @@ | ||||||
|  | public class Stack<T> | ||||||
|  | { | ||||||
|  |     /** | ||||||
|  |      * erster Eintrag der Liste | ||||||
|  |      */ | ||||||
|  |     public Node<T> first; | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Konstruktor | ||||||
|  |      */ | ||||||
|  |     public Stack() {} | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Überprüft, ob die Liste leer ist | ||||||
|  |      *  | ||||||
|  |      * @return true, wenn keine Elemente in der Liste | ||||||
|  |      */ | ||||||
|  |     public boolean isEmpty() { | ||||||
|  |         return first == null; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Fügt ein neues Element am Anfang der Liste ein | ||||||
|  |      */ | ||||||
|  |     public void push(T neu) { | ||||||
|  |         Node n = new Node<T>(neu); // Neue Node mit Wert "neu" anlegen
 | ||||||
|  |         n.next = first; | ||||||
|  |         first = n; | ||||||
|  |     } | ||||||
|  |          | ||||||
|  |     /** | ||||||
|  |      * Löscht das Element an der ersten Stelle und gibt | ||||||
|  |      * dessen Wert zurück | ||||||
|  |      */ | ||||||
|  |     public T pop() { | ||||||
|  |         if (first == null) return null; | ||||||
|  |          | ||||||
|  |         T wert = first.wert; | ||||||
|  |          | ||||||
|  |         first = first.next; | ||||||
|  |          | ||||||
|  |         return wert; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Gibt das Element an der ersten Stelle zurück, oder null | ||||||
|  |      */ | ||||||
|  |     public T top() { | ||||||
|  |         if (first == null) return null; | ||||||
|  |         return first.wert; | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue