Welche Klasse in den Basisklassenbibliotheken von C # (.NET oder Mono) implementiert direkt B-Bäume oder kann schnell außer Kraft gesetzt werden, um B-Bäume zu implementieren? Ich sehe die Hashtable Klasse, kann aber ' Es scheint so zu sein, als ob Sie irgendwelche Klassen für die Tree
-Familie finden ...
Es muss eine Basis-Tree-Klasse geben, die überschrieben werden kann, um bestimmte Tree-Implementierungen (wie B-Tree oder Red-Black oder Binary Tree usw. durch Angabe der bauminvarianten Bedingungen) zu generieren. Es macht keinen Sinn, dass Programmierer das Rad für grundlegende Datenstrukturen neu erfinden (Tree's sind in CompSci ziemlich einfach), besonders in einer objektorientierten Sprache; also bin ich mir ziemlich sicher, dass ich einfach nicht richtig suche ...
Bearbeiten:
Es gibt keine (öffentliche) Implementierung eines B-Tree in .NET.
Es ist keine generische Tree-Klasse verfügbar, die eine teilweise Implementierung einer baumbasierten Struktur bietet.
Sie müssten etwas von Grund auf schreiben oder eine Implementierung von Drittanbietern statt einer .NET-Implementierung verwenden.
Sie möchten vielleicht allgemeine C # -Implementierungen von B & amp; B + Bäume in GitHub.
Es gibt eine Implementierung von B-Tree für .NET auf Codeplex , die vielversprechend aussieht. Performance-weise auch.
Code verwendet die Store-API zum Speichern von & amp; Verwalten von Schlüssel / Wert-Datenpaaren. Die interne Speicherimplementierung verwendet eine verbesserte, modernisierte B-Tree-Implementierung, die RAM & amp; Festplattenspeicher.
Einige wichtige Verbesserungen dieses B-Tree im Vergleich zu herkömmlichen
Implementierungen sind:
Die Optimierung der Knotenlast führt zu einer durchschnittlichen Auslastung von 75% -98% von innerem & amp; Blattknoten. Traditionelle B-Bäume erreichen nur etwa halbvolle (50%) durchschnittliche Belastung. Dies führt zu einer mehr komprimierten oder dichtere Daten Speichert IT-Shops vor teurer Speicherhardware. Es wird toleriert, dass die Höhe der Blattknoten in einem bestimmten Fall nicht perfekt ausgeglichen ist, um die Löschgeschwindigkeit bei null / minimalen Kosten in Austausch. Auch neigt die Höhenabweichung aufgrund der Löschung dazu, zu erhalten während der Einsätze aufgrund der Funktion zur Optimierung der Knotenlast repariert oben besprochen.
- etc ... viel mehr Verbesserungen, die darauf warten, dokumentiert / zitiert zu werden, wenn es die Zeit erlaubt.