Benutzer-Werkzeuge

Webseiten-Werkzeuge


listen:verkettet:getanzahl:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
listen:verkettet:getanzahl:start [2024/09/19 06:40] – angelegt Martin Pabstlisten:verkettet:getanzahl:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
-====== Implementierung der Methode getAnzahl ====== 
  
-<WRAP center round info 60%> 
-Die Aufgabenstellung fordert, die Methode ''getAnzahl()'' unter Verwendung des Prinzips der Rekursion zu implementieren. Das stellt eine einfache Übung dar, um das Schreiben rekursiver Methoden zu erlernen, siehe auch den Lehrplan in Bayern (//"Dabei nutzen sie das Prinzip der Rekursion."//, siehe [[https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/12/informatik/grundlegend|hier]]). In der Praxis würde man diese Methode sicher nicht rekursiv implementieren, da das Laufzeitverhalten dieses Algorithmus sehr ungünstig ist: Für eine Liste mit ''n'' Elementen werden insgesamt ''n + 1'' Methodenaufrufe benötigt. \\ \\  
-//Überlegen Sie:// Wie könnte man die Methode ohne Rekursion mit besserem Laufzeitverhalten implementieren? 
-</WRAP> 
- 
- 
-<HTML> 
- 
-<div class="java-online" style="height: 70vh; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'warteschlangeGetAnzahl'}"> 
- 
-<script type="text/plain" title="Hauptprogramm.java"> 
-Supermarktkasse s = new Supermarktkasse(); 
-s.hintenAnstellen(new Kunde("Max")); 
-s.hintenAnstellen(new Kunde("Tina")); 
-s.hintenAnstellen(new Kunde("Silke")); 
-s.hintenAnstellen(new Kunde("Tim")); 
- 
-println(s.erstenEntnehmen().name); 
-println(s.erstenEntnehmen().name); 
-println(s.erstenEntnehmen().name); 
- 
- 
-class Supermarktkasse { 
-   Kunde anfang; 
-   Kunde ende; 
- 
-   void hintenAnstellen(Kunde kunde) { 
-      if(anfang == null) { 
-         anfang = kunde; 
-         ende = kunde; 
-         return; 
-      } 
- 
-      ende.nachfolger = kunde; 
-      ende = kunde; 
- 
-   } 
- 
-   Kunde erstenEntnehmen() { 
-      Kunde erster = anfang; 
-      anfang = erster.nachfolger; 
-      return erster; 
-   } 
-    
-   int getAnzahl(){ 
-     if(anfang == null) return 0; 
-     return anfang.getAnzahl(); 
-   } 
-} 
- 
-class Kunde { 
-   String name; 
-   Kunde nachfolger; 
- 
-   Kunde(String name) { 
-      this.name = name; 
-   } 
-    
-   int getAnzahl(){ 
-      if(nachfolger == null) return 1; 
-      return nachfolger.getAnzahl() + 1; 
-   } 
-} 
-</script> 
- 
- 
-</HTML> 
listen/verkettet/getanzahl/start.1726728052.txt.gz · Zuletzt geändert: 2024/09/22 04:37 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki