Benutzer-Werkzeuge

Webseiten-Werkzeuge


graphen:wartschlange:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
graphen:wartschlange:start [2023/10/13 07:13] Martin Pabstgraphen:wartschlange:start [2023/10/16 08:57] (aktuell) – [Beispiel: Supermarktkasse] Martin Pabst
Zeile 4: Zeile 4:
 {{ :graphen:pasted:20231012-120214.png?400 }} {{ :graphen:pasted:20231012-120214.png?400 }}
 In einer Warteschlange können beliebig viele Elemente nacheinander abgelegt werden. Sie besitzt eine Methode ''addLast'' um Elemente am hinteren Ende der Warteschlange anzufügen und eine Methode ''removeFirst'' um Elemente am vorderen Ende zu entnehmen. \\ \\  In einer Warteschlange können beliebig viele Elemente nacheinander abgelegt werden. Sie besitzt eine Methode ''addLast'' um Elemente am hinteren Ende der Warteschlange anzufügen und eine Methode ''removeFirst'' um Elemente am vorderen Ende zu entnehmen. \\ \\ 
-In der Programmiersprache Java gibt es mehrere Klassen, die die Aufgaben einer Warteschlange erfüllen können, daher sind die Methoden der Warteschlange im Interface ''Queue'' definiert, das von mehreren Klassen implementiert wird, insbesondere von der Klasse ''LinkedList<T>'', die wir im Folgenden verwenden. Dabei ist ''T'' die Klasse der Objekte, die in der ''LinkedList'' gespeichert werden können. Wollen wir beispielsweise Zeichenketten in der ''LinkedList'' speichernso gehen wir folgendermaßen vor+In der Programmiersprache Java gibt es mehrere Klassen, die die Aufgaben einer Warteschlange erfüllen können, daher sind die Methoden der Warteschlange im Interface ''Queue'' definiert, das von mehreren Klassen implementiert wird, insbesondere von der Klasse ''LinkedList<T>'', die wir im Folgenden verwenden. Dabei ist ''T'' die Klasse der Objekte, die in der ''LinkedList'' gespeichert werden können. \\ \\  
-{{ :graphen:pasted:20231012-121243.png?500 }}+Am folgenden Beispiel, in dem String-Werte zu einer ''LinkedList'' hinzugefügt/aus dieser entnommen werdensehen Sie, wie man diese Datenstruktur verwenden kann
 +{{ :graphen:wartschlange:pasted:20231013-091720.png?500 }}
 </WRAP> </WRAP>
 +<WRAP center round tip 80%>
 +**Tipp: Iterieren über alle Elemente einer ''LinkedList''** \\ \\ 
 +Eine Wiederholung, die für alle Elemente einer ''LinkedList'' ausgeführt wird, kannst Du z.B. mit der vereinfachten for-Loop erreichen:
 +<HTML>
 +
 +<div class="java-online" style="height: 350px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'forloopoverlinkedlist'}">
 +
 +<script type="text/plain" title="Graph 1.java">
 +LinkedList<String> list = new LinkedList();
 +list.addLast("A");
 +list.addLast("B");
 +list.addLast("C");
 +
 +for(String s: list){
 +   println(s);  // wird für alle Elemente von list ausgeführt
 +}
 +
 +
 +</script>
 +</div>
 +</HTML>
 +
 +</WRAP>
 +
 +===== Beispiel: Supermarktkasse =====
 +<WRAP center round todo 80%>
 +Erstelle eine Klasse ''Supermarktkasse" mit den Methoden ''anstellen(String name)'', ''alleAusgeben()'' und ''kassieren()''. Das unten schon vorgegebene Hauptprogramm soll die folgende Bildschirmausgabe bewirken:
 +{{ :graphen:wartschlange:pasted:20231013-104526.png }}
 +**Tipps:** \\
 +  * //Zur Ausgabe der Gesamtliste siehe den Tipp oben!//
 +  * Gib der Klasse ''Supermarktkasse'' ein Attribut ''queue'' vom Datentyp ''LinkedList<STring>''. Instanziere das Objekt im Konstruktor, dann kannst Du es nachfolgend in allen anderen Methoden benutzen, um die Kunden zu speichern.
 +</WRAP>
 +
 +<HTML>
 +
 +<div class="java-online" style="height: 50vh; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Supermarktkasse'}">
 +
 +<script type="text/plain" title="Graph 1.java">
 +Supermarktkasse k = new Supermarktkasse();
 +k.anstellen("Frau Tejas");
 +k.anstellen("Herr Schmidt");
 +k.anstellen("Frau Maier");
 +k.anstellen("Herr Bader");
 +
 +k.alleAusgeben();
 +
 +k.kassieren();
 +
 +k.alleAusgeben();
 +
 +// Ab hier: schreibe die Klasse Supermarktkasse!
 +class Supermarktkasse {
 +   LinkedList<String> queue;
 +   
 +   Supermarktkasse(){
 +      queue = new LinkedList<String>();
 +   }
 +
 +   // Hier folgt die Deklaration der weiteren Methoden...
 +
 +}
 +
 +
 +</script>
 +
 +</div>
 +</HTML>
 +
 +
 +[[.supermarktkasseloesung:start|Lösung]]
graphen/wartschlange/start.1697181183.txt.gz · Zuletzt geändert: 2023/10/13 07:13 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki