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