Zeiger in VB - Seite 7
von Konrad Rudolph
Anhang
Schlusswort
Als ich dieses Tutorial zu schreiben angefangen habe, war nicht beabsichtigt, dass es derart lang werden sollte. Es ist nun an Umfang immer mehr gewachsen und hat das ursprüngliche Thema bei weitem gesprengt. Statt sich nur auf Zeiger zu konzentrieren, stellt das Tutorial eine Vielzahl von Mechanismen vor und schneidet viele Themen oberflächlich an, ohne sie wirklich tief schürfend zu behandeln. Um das Tutorial daher nicht noch weiter zu dehnen, habe ich mich entschlossen, die Schlusspartie auszugliedern und ihr ein eigenes Tutorial zu spendieren. In diesem Tutorial wird es darum gehen, anhand von Zeigern eine Huffman-Codierung in VB zu implementieren.
Die vorgestellte Technik, in VB Zeiger zu simulieren mag recht wenig spektakulär erscheinen, wenn man bedenkt, dass sie ausschließlich auf gut bekannten, um nicht zu sagen "klassischen" Mechanismen der VB-Programmierung aufbaut.
Das wahre Potential des Codes ist mir auch erst im Laufe der Entstehung dieses Tutorials aufgefallen: ich wollte einen Huffman-Code von C++ nach VB konvertieren, um ihn als Beispiel anzuführen. Dank des Heaps habe ich den vorgegebenen Algorithmus Kommando für Kommando nach VB übernehmen können! Mir war bis zu diesem Zeitpunkt nicht bewusst, dass es auch nur annähernd möglich ist, Codes 1:1 von C++ nach VB zu konvertieren und soweit ich weiß, ist dies auch nicht allgemein bekannt. Als ich den fertigen VB-Code vor Augen hatte, war ich, um es gelinde auszudrücken, erstaunt. Der Heap stellt daher in gewisser Weise eine vollkommen neue Programmiertechnik dar.
Literatur
Viele der oberflächlich behandelten Themen in diesem Artikel, darunter Datenstrukturen und Bäume, sind ganze Themenbereiche für sich. Die im folgenden aufgeführte Fachliteratur soll helfen, sie zu vertiefen.
- [Aho, Sethi, Ullman] Compilerbau, 2 Teile, Teil 1 (Baumstrukturen, Navigation in Bäumen)
- Binäre Suchbäume (Navigation in Bäumen)
- Unoffizielle VarPtr()-Dokumentation
- [Ivor Horton] Beginning Visual C++6 (Grundlagen der Zeigerprogrammierung)
- [vbAccelerator] malloc in VB?
Downloads
Alle Beispielcodes können heruntergeladen werden. Aus Gründen der Benutzbarkeit wurde das Heap-Modul jeweils in die Klasse eingegliedert. Außerdem verwenden die Codes das Long-Alias Pointer als Datentyp für Zeiger. Es handelt sich hierbei einfach um eine leere Enum.
Queue.zip [2483 Bytes]
Stack.zip [2530 Bytes]
BinTree.zip [2617 Bytes]