Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger

Ähnliche Präsentationen


Präsentation zum Thema: "Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger"—  Präsentation transkript:

1 Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger UE07 Einfach verkettete Listen

2 Abteilung für Telekooperation Folie-2 Softwareentwicklung I UE Schwinger Verkettete Listen Beliebig lange Liste von Kreisen Gesucht wird ein Klasse CircleList, die es ermöglicht beliebig viele Kreise zu speichern. Die Liste soll dabei dynamisch wachsen können. Die Liste soll die Kreise in nach dem Flächeninhalt sortierter Reihenfolge beinhalten. Es soll die Anzahl der Kreise nicht beschränkt sein (dh. kein Array). Es soll dabei möglich sein: einen Kreis hinzuzufügen add(Circle c) Die Liste aller verwalteter Kreise in sortierter Reihenfolge auszugeben printAll() Hinweise: Verwalten Sie die Einträge durch eine einfach verkettete Liste selbst. Überlegen Sie sich: Wie funktionieren einfach verkettete Listen prinzipiell? Wie soll die Strukturen (Klassen und deren Zusammenspiel) aussehen?

3 Abteilung für Telekooperation Folie-3 Softwareentwicklung I UE Schwinger Verkettete Listen Beliebig lange Liste von Kreisen public class CircleList { private CircleElement head; // Erstes Element in der Liste CircleList() {// Konstruktor head = null;// Liste leer } public void printAll() {// Ausgabe aller Element der Liste CircleElement actPos = head; // start am Beginn der Liste while (actPos != null) { // solange nicht am Ende Circle c = actPos.getCircle();// hole Inhalt d. Elements IO.writeLn(""+c); // Ausgabe actPos = actPos.getNext(); // weiter } } // end printAll...

4 Abteilung für Telekooperation Folie-4 Softwareentwicklung I UE Schwinger Verkettete Listen Beliebig lange Liste von Kreisen public class CircleList {... public void add(Circle c) { // Hinnzufuegen CircleElement actPos = head; // akt. Position CircleElement prevPos = null; // vorhergehende Postion CircleElement cElem = new CircleElement(c); // tmpElement // search for position if (actPos == null) { // list empty head = cElem; } else {// search position in list while (actPos != null && actPos.lessThan(cElem)) { prevPos = actPos; actPos = actPos.getNext(); } // insert into list cElem.setNext(actPos); if (prevPos == null) {// to be inserted before first head = cElem; } else {// any other position prevPos.setNext(cElem); } } // end add(Circle c) } // end class CircleList

5 Abteilung für Telekooperation Folie-5 Softwareentwicklung I UE Schwinger Verkettete Listen Beliebig lange Liste von Kreisen class CircleElement { private Circle element = null; private CircleElement next = null; CircleElement(Circle c) { element = c; } Circle getCircle() { return element; } CircleElement getNext() { return next; } void setNext(CircleElement cElem) { this.next = cElem; } boolean lessThan(CircleElement cElem) { return this.getCircle().lessThan(cElem.getCircle()); } } // end CircleElement

6 Abteilung für Telekooperation Folie-6 Softwareentwicklung I UE Schwinger Verkettete Listen Beliebig lange Liste von Kreisen public class ListTest { public static void main(String[] args) { Circle c1 = new Circle(new Point(2,7), 1); Circle c2 = new Circle(new Point(3,4), 2); Circle c3 = new Circle(new Point(10,12), 5); Circle c4 = new Circle(new Point(2,7), 2); CircleList l = new CircleList(); l.add(c1); l.add(c2); l.add(c3); l.add(c4); l.printAll(); } // end main } // end class ListTest


Herunterladen ppt "Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger"

Ähnliche Präsentationen


Google-Anzeigen