#include <huffmanElement.h>
Public Member Functions | |
HuffmanElement () | |
HuffmanElement (char cur_letter, int cur_value) | |
HuffmanElement (HuffmanElement *cur_left, HuffmanElement *cur_right, int cur_value) | |
HuffmanElement (const HuffmanElement &original) | |
virtual | ~HuffmanElement () |
virtual HuffmanElement & | operator= (const HuffmanElement &original) |
virtual bool | operator> (const HuffmanElement &compare) const |
virtual char | get_letter () const |
virtual int | get_value () const |
virtual int | get_name () const |
virtual bool | get_is_right () const |
virtual HuffmanElement * | get_parent () |
virtual HuffmanElement * | get_left () |
virtual HuffmanElement * | get_right () |
virtual bool * | get_lookup_code () |
virtual unsigned int | get_lookup_code_length () const |
virtual void | set_parent (HuffmanElement *cur_parent, bool cur_is_right) |
virtual void | add_lookup_code (bool code) |
virtual int | get_longest_code () |
Klasse zum Verwalten von Huffman-Knoten und -Blaettern
HuffmanElement::HuffmanElement | ( | ) |
Erzeugt einen leeren Knoten. Reserviert Speicher fuer 30 Lookup-Bits.
HuffmanElement::HuffmanElement | ( | char | cur_letter, |
int | cur_value | ||
) |
Erzeugt ein Blatt mit Buchstaben und deren Anzahl. Reserviert Speicher fuer 30 Lookup-Bits.
cur_letter | Buchstabe |
cur_value | Anzahl |
HuffmanElement::HuffmanElement | ( | HuffmanElement * | cur_left, |
HuffmanElement * | cur_right, | ||
int | cur_value | ||
) |
Erzeugt einen Knoten mit linkem und rechtem Nachfolger, sowie einem Wert, der die Wertigkeit des aktuellen Asts angibt. Reserviert Speicher fuer 30 Lookup-Bits.
cur_left | linker Nachfolger |
cur_right | rechter Nachfolger |
cur_value | Wert des Asts |
HuffmanElement::HuffmanElement | ( | const HuffmanElement & | original | ) |
Kopiert einen Knoten/Blatt.
original | zu kopierender Knoten/Blatt |
HuffmanElement::~HuffmanElement | ( | ) | [virtual] |
Gibt alle Speicherbereiche des Knotens/Blatt frei.
void HuffmanElement::add_lookup_code | ( | bool | code | ) | [virtual] |
Fuegt ein uebergebenes Bit zum eigenen Lookup-Code hinzu und macht dies auch fuer alle Nachfolger des aktuellen Knotens.
code | hinzuzufuegendes Bit |
bool HuffmanElement::get_is_right | ( | ) | const [virtual] |
Gibt an, ob der aktuelle Knoten/Blatt ein rechter oder linker Nachfolger ist.
HuffmanElement * HuffmanElement::get_left | ( | ) | [virtual] |
Liefert den linken Nachfolger.
char HuffmanElement::get_letter | ( | ) | const [virtual] |
Liefert den aktuellen Buchstaben.
int HuffmanElement::get_longest_code | ( | ) | [virtual] |
Liefert die Laenge des laengsten Lookup-Codes.
bool * HuffmanElement::get_lookup_code | ( | ) | [virtual] |
Liefert den Lookup-Code des aktuellen Blatts.
unsigned int HuffmanElement::get_lookup_code_length | ( | ) | const [virtual] |
Liefert die Laenge des Lookup-Codes des aktuellen Blatts.
int HuffmanElement::get_name | ( | ) | const [virtual] |
Liefert den Namen des Knotens (Nummer)
HuffmanElement * HuffmanElement::get_parent | ( | ) | [virtual] |
Liefert den uebergeordneten Knoten.
HuffmanElement * HuffmanElement::get_right | ( | ) | [virtual] |
Liefert den rechten Nachfolger.
int HuffmanElement::get_value | ( | ) | const [virtual] |
Liefert den aktuellen Wert (Wertigkeit des aktuellen Asts)
HuffmanElement & HuffmanElement::operator= | ( | const HuffmanElement & | original | ) | [virtual] |
Zuweisungsoperator zum Kopieren/Zuweisen eines Kontens/Blatts.
original | zuzuweisender Knoten/Blatt |
bool HuffmanElement::operator> | ( | const HuffmanElement & | compare | ) | const [virtual] |
Ueberladung des > Operator ermoeglicht den Vergleich von Knoten/Blaettern. Knoten/Blaettern mit grossem Wert sind groesser als Knoten/Blaettern mit kleinem Wert.
compare | zu vergleichender Knoten |
void HuffmanElement::set_parent | ( | HuffmanElement * | cur_parent, |
bool | cur_is_right | ||
) | [virtual] |
Legt den Uebergeordneten Knoten fest und bestimmt, ob der aktuelle Knoten/Blatt ein linker oder rechter ist.
cur_parent | uebergeordneter Knoten |
cur_is_right | 0, wenn es ein liker Nachfolger ist, sonst ist es ein rechter Nachfolger |