AuK/Prioritätswarteschlangen SS12

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Java</language>
<language>Java</language>
=Einführung=
kurze Einführung


==Heaps==
was sind Heaps
===Übungsaufgaben===

==Exkurs Heap-Sort==
kurzes blabla um an vorgänger an zu knüpfen

=Normale Warteschlangen=
Normale Warteschlangen funktionieren nach dem FiLo-Prinzip (First in, last out).

<popup name="Klassen-Definitionen">
<code id="35435435436546546">
public Object Queue(){
  private Object[] elements = new Object[0];
  
  public void enqueue(Object element){
    int length = elements.length;
    Object[] newElements = new Object[length+1];
    for(int i=0; i<= length-1; i++){
      newElements[i] = elements[i];
    }
    newElements[length] = element;
    elements = newElements;
  }

  public Object dequeue(){
    int length = elements.length;
    Object firstElement = elements[0];
    Object[] newElements = new Object[length-1];
    for(int i=0; i< length-1; i++){
      newElements[i] = elements[i+1];
    }
    elements = newElements; 
    return firstElement;
  }

  public void showElements(){
   foreach(Object element : elements){
    System.out.print("["+element+"]");
   }
  }

return this;
 }
</code>
</popup>

<run id="35435435436546546">
bla = Queue();
bla.enqueue(1);
bla.enqueue(2);
bla.enqueue(3);
System.out.println(bla.dequeue());
System.out.println(bla.dequeue());
bla.enqueue(1);
bla.showElements();
System.out.println(bla.dequeue());
</run>

=Prioritätswarteschlangen=
warum wieso wesshalb man die brauch und unter welchen umständen man die dem normalen vorziehen sollte

==Nicht Adressierbare Prioritätswarteschlangen==
siehe prio-queues was hir rein soll

===Binary Heaps===
was ist das, wie funktioniert das?

==Adressierbare Prioritätswarteschlangen==
siehe prio-queues


===Binominal Bäume===
nochmal, aber spezieller


===Pairing-heaps===
wer wie was *clap* *clap*

===Fibonacci-heaps===
wieso wesshalb warum,


====Übungsaufgaben====