B-Tree-Klasse in C # -Standardbibliotheken?

9

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:

  1. Ich benutze weder Hashtable, noch glaube ich, dass es mit einem Baum zu tun hat. Ich habe es nur als Beispiel für "eine andere Datenstrukturklasse im BCL" verwendet.
  2. Für diejenigen, die neugierig sind über den Hintergrund aka Use Case. Es ist für O (log (N)) sucht nach einem In-Memory-assoziativen Satz. Stellen Sie sich vor, Sie erstellen einen Index für diesen assoziativen Satz ...
DeepSpace101 03.01.2014, 18:59
quelle

5 Antworten

8

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.

    
Servy 03.01.2014 19:02
quelle
3

Leider bietet .Net keine Bibliothek für Tree.

Aber Sie können online Hilfe für B-Bäume bekommen

1) Ссылка

2) Ссылка

    
Rakhi 03.01.2014 19:12
quelle
1

Ich weiß, dass ich schrecklich spät auf der Party bin, aber ich hatte großen Erfolg mit BPlusTree. Die Autoren haben fantastische Arbeit geleistet. Ссылка

    
joelc 24.06.2016 03:54
quelle
1

Sie möchten vielleicht allgemeine C # -Implementierungen von B & amp; B + Bäume in GitHub.

justcoding124 16.10.2017 02:07
quelle
0

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.
  •   
    
Ognyan Dimitrov 26.01.2017 08:05
quelle

Tags und Links