• Keine Ergebnisse gefunden

Übung 6: Heap

N/A
N/A
Protected

Academic year: 2022

Aktie "Übung 6: Heap"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Übung 6: Heap

Abgabetermin: 08.05.2012

Name: __________________________________________ Matrikelnummer: _________________

Gruppe: ☐ G1 Di 10:15 ☐ G2 Di 12:45

Aufgabe Punkte gelöst abzugeben

schriftlich abzugeben

elektronisch Korr. Punkte

Aufgabe 1 24 Java-Programm

Testfälle und Ergebnisse

Java-Programm

Aufgabe 1: Pioritätswarteschlange für Zeichen (24 Punkte)

Implementieren Sie eine Prioritätswarteschlange für Zeichen mit einem Heap. Größere Zeichen sollen höhe- re Priorität als kleinere haben, d.h. 'z' kommt vor 'a'. Die Schnittstelle ist durch die abstrakte KlassePriority- Queuegegeben: offer fügt ein Zeichen ein;pollliefert das größte Zeichen und entfernt es; sizeliefert die Anzahl der Zeichen; iterator liefert einen Iterator (mit Schnittstelle Iterator) mit dem die Prioritätswarte- schlange in Heapordnung (d.h. vom größten zum kleinsten Zeichen) durchlaufen werden kann;clearlöscht alle Zeichen; peek liefert das größte Zeichen ohne es zu entfernen;remove entfernt das erste Vorkommen des Zeichens, falls es vorkommt.

package  at.jku.ssw;

public  abstract  class  PriorityQueue  {    public  abstract  void  offer(char  value);

   public  abstract  char  poll();

   public  abstract  int  size();

   public  abstract  Iterator  iterator();

   public  abstract  void  clear();

   public  abstract  char  peek();

   public  abstract  boolean  remove(char  value);

}

public  abstract  class  Iterator  {    public  abstract  boolean  hasNext();

   public  abstract  char  next();

}

Implementieren Sie die Klassen ArrayPriorityQueue und ArrayPriorityQueueIterator im Paket at.jku.stu- dents.

package  at.jku.students;

public  class  ArrayPriorityQueue          extends  PriorityQueue  {    char[]  values  =  new  char[1];

   int  count  =  1;

   public  String  makeDot()  {

       return  DotMaker.makeDotForHeap(

     Arrays.copyOf(values,  count));

   }    ...

}

public  class  ArrayPriorityQueue  Iterator        extends  Iterator  {

   ...

}

PriorityQueue  pq  

   =  new  ArrayPriorityQueue();

pq.offer('T');

pq.offer('O');

pq.offer('G');

pq.offer('X');

pq.offer('S');

makeDot((ArrayPriorityQueue)  pq,  "Test.dot");

Out.print(pq.size()  +  ":  ");

while  (pq.size()  >  0)  {    Out.print("  "  +  pq.poll());

}  //  Ausgabe  5:  XTSOG

Implementierungshinweise:

■Verwenden Sie ein Array um den Heap zu implementieren. Lassen Sie das Ar- ray am Index 0 für ein Dummy-Element leer. Lassen Sie das Array dynamisch wachsen, indem Sie bei Bedarf die Länge verdoppeln.

Abzugeben ist: Java-Programm, Testfälle

Übung Praktische Informatik 2 SS 2012

Referenzen

ÄHNLICHE DOKUMENTE

Bei einer sinnvollen Raumanordnung lässt sich damit auch die Entmistung vereinfa- chen und bewirken, dass die Pferde verschiedene Verhaltensweisen an ver- schiedenen

❱ Um gleich mit den radikalen Verän- derungen zu beginnen: Die ZB MED ist seit 1. Januar 2014 eine Stiftung öffentlichen Rechts 1. Ulrich Korwitz, Direktor der ZB MED, jetzt ZB MED

A5: Schätzen Sie ab, welche elektrische Energie in der Erdatmosphäre gespeichert ist, wenn man davon ausgeht, dass das elektrische Feld bis in 1000m Höhe reicht und eine

Die Methode compare(obj1, obj2) von Comparator gibt einen negativen Wert zurück, wenn obj1 kleiner als obj2 ist, oder einen positiven Wert, wenn obj1 größer als obj2 ist}. Ein

● Für den Fall, dass das Storage-Array der Klasse ​ ArrayPriorityQueue ​ voll wird verwenden Sie Arrays.copyOf(Object[] original,int newLength) ​ um eine neues Array

¨ Der Arbeitgeber sorgt dafür, dass Arbeitsplätze regelmäßig aufgeräumt und verschmutzte Arbeits- geräte unverzüglich gesäubert werden.. ¨ Arbeitsbereiche werden ausreichend

Wird die Wohnung selte- ner benutzt oder die Temperatur noch mehr abgesenkt, ist die Ein- sparung umso höher.» Das Bun- desamt für Energie empfiehlt bei Wohnungen eine Absenkung auf

Als ich bei den Recherchen zu diesem Artikel auf die Website der Firma Vauen geschaut habe, musste ich zwar feststellen, dass es die Duke-Serie leider nicht mehr gibt, aber es sind