Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.0.7

binary_tree

Selbstbalancierender binärer Suchbaum für Dart. BST wird als Iterable implementiert. Es gibt viele Operationen wie greaterThen, lessThenOrEqual (Unterliste erstellen), max, min usw.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
95
Likes
28
Pub-Punkte
150

Paket installieren

flutter pub add binary_tree

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Eine Implementierung eines selbstbalancierenden binären Suchbaums in Dart, die darauf ausgelegt ist, effiziente Such-, Einfüge- und Löschoperationen mit einer Komplexität von O(log n) aufrechtzuerhalten. Der Baum unterstützt die Iteration über Iterable und bietet leistungsstarke Methoden wie greaterThan, lessThanOrEqual (zur Erstellung von Teillisten), max und min. Ideal für dynamische Datensätze, die geordneten Zugriff und Bereichsabfragen erfordern. Entwickelt mit Fokus auf Leistung und Benutzerfreundlichkeit, eignet sie sich für Anwendungen, die schnelle sortierte Datenverwaltung über mehrere Plattformen hinweg benötigen.

Anwendungsfälle

  • Dynamisches Verwalten sortierter Daten
  • Implementierung von Bereichsabfragen
  • Effiziente Suche und Einfügung
  • Geordnete Sammlungen erstellen
  • Unterstützung der Echtzeit-Datenverarbeitung
  • Schnelle Min-/Max-Wertabruf aktivieren

Hauptmerkmale

  • Selbstausgleichende Struktur
  • Iterable-Unterstützung
  • Bereichsbasierte Abfragen (greaterThan, lessThanOrEqual)
  • O(log n)-Operationen
  • Min-/Max-Zugriffsmethoden
  • Plattformübergreifende Kompatibilität

Geeignet für

  • Entwickler, die geordnete Datenstrukturen benötigen
  • Anwendungen mit häufigen Einfügungen und Abfragen
  • Systeme, die sortierte Teilmengen erfordern
  • leistungskritische Datenverarbeitung
  • Dart-Projekte auf mehreren Plattformen

Hinweise

  • Höherer Speicherverbrauch als bei einfachen Listen
  • Nicht ideal für statische Datensätze
  • Erfordert Verständnis von BST-Konzepten
  • Intuitiver als integrierte Sammlungen
  • Mögliche Komplexität bei der Fehlersuche in Baumlogik

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

Self-Balancing Binary Search Tree for Dart. BST is implemented as Iterable. There are many operations such as greaterThan, lessThanOrEqual (create sublist), max , min etc.

Features

void main() {
  final myNumbers = BinaryTree([10, 8, 16, 4, 9, 13, 25, 2, 6, 12, 26, 14, 18]);
}

Binary tree stores values as a binary search tree.
For more information : Binary Search Tree.

A Self-Balancing AVL type tree is used, which balances the depth of the nodes.
For more information : Self Balancing Binary Search Tree , AVL Tree.

img.png

Usage

Use Case

You can see if you need it by looking at the benchmarks given below. It is generally advantageous in keeping long and sorted datasets. Its advantage is not noticeable on short datasets.

Benchmark scenarios

img_3.png img_1.png img_2.png

Type

Binary Tree objects must be Comparable

All of num , String , Duration etc. are Comparable.

You can define your objects as Comparable.

Comparable Documentation

void main() {
  final myLetters = BinaryTree<String>(["a", "c", "b"]);
  final myDates = BinaryTree<DateTime>([DateTime.now()]);
}
Basic operations
void main() {
  final myNumbers = BinaryTree([ 
    /*initial*/
  ]);
  myNumbers.insert(value);
  myNumbers.remove(value);
  myNumbers.contains(value);
  
}
Iterator

You can create an Iterator by "startsWith" or "endsWith" given element.

f() {
  final myNumbers = BinaryTree([10, 8, 16, 4, 9, 13, 25, 2, 6, 12, 26, 14, 18]);
  final iterator = myNumbers.iteratorFrom(8, greaterThan: true, equal: false); // defaults
  while (iterator.moveNext()) {
    print(iterator.current); // 9 , 10 ... 26
  }
}

You can also define bounds

f() {
  final myNumbers = BinaryTree([10, 8, 16, 4, 9, 13, 25, 2, 6, 12, 26, 14, 18]);
  final iterator = myNumbers.iteratorFrom(8, bound: Bound(13, equal: true));
  while (iterator.moveNext()) {
    print(iterator.current); // 9 , 10 ... 13
  }
}
toList

You can create new lists using range iterators.

f() {
  final myNumbers = BinaryTree([10, 8, 16, 4, 9, 13, 25, 2, 6, 12, 26, 14, 18]);

  myNumbers.lessThan(16);

  /// 14 , 13 , ... 2
  myNumbers.lessThanOrEqual(16);

  /// 16 , 14 , 13 , ... 2
  myNumbers.greaterThan(16);

  ///  25 , 26
  myNumbers.greaterThanOrEqual(16);

  /// 16 , 25 , 26

  /// custom bound
  myNumbers.listFrom(16, bound: Bound(13, equal: true));

  /// 16 , 14 , 13

}

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.