पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

पैकेज विवरणv1.0.7

binary_tree

डार्ट के लिए सेल्फ-बैलेंसिंग बाइनरी सर्च ट्री। BST को आइटरेबल के रूप में लागू किया गया है। अधिक ऑपरेशन जैसे greaterThen, lessThenOrEqual (उपसूची बनाएं), max, min आदि हैं।

AndroidiOSWebmacOSWindowsLinux
30-दिन डाउनलोड
95
लाइक
28
Pub अंक
150

पैकेज इंस्टॉल करें

flutter pub add binary_tree

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

Dart में एक स्व-संतुलित बाइनरी सर्च ट्री का कार्यान्वयन, जो O(log n) जटिलता के साथ प्रभावी खोज, सम्मिलन और हटाने की संचालन बनाए रखने के लिए डिज़ाइन किया गया है। ट्री को Iterable के माध्यम से पुनरावृत्ति करने का समर्थन है और उपयोगी विधियाँ जैसे greaterThan, lessThanOrEqual (उपसूची निर्माण के लिए), max और min प्रदान करती है। आदेशित पहुँच और श्रेणी प्रश्नों की आवश्यकता वाले गतिशील डेटा सेट्स के लिए आदर्श। प्रदर्शन और उपयोगकर्ता अनुभव के लिए बनाया गया, यह विभिन्न मंचों पर त्वरित वर्गीकृत डेटा प्रबंधन की आवश्यकता वाले अनुप्रयोगों के लिए उपयुक्त है।

उपयोग

  • गतिशील रूप से क्रमबद्ध डेटा का प्रबंधन
  • रेंज प्रश्नों का कार्यान्वयन करना
  • कुशल खोज और सम्मिलन
  • क्रमबद्ध संग्रह निर्माण करना
  • रियल-टाइम डेटा प्रोसेसिंग का समर्थन करना
  • त्वरित न्यूनतम/अधिकतम प्राप्त करने के लिए सक्षम करें

मुख्य विशेषताएँ

  • स्व-संतुलन संरचना
  • Iterable समर्थन
  • रेंज-आधारित प्रश्न (greaterThan, lessThanOrEqual)
  • O(log n) संचालन
  • न्यूनतम/अधिकतम एक्सेस विधियाँ
  • क्रॉस-प्लेटफॉर्म संगतता

इनके लिए उपयुक्त

  • क्रमबद्ध डेटा संरचनाओं की आवश्यकता वाले विकासकर्ता
  • अक्सर इन्सर्ट करने और खोजने वाले एप्लिकेशन
  • क्रमबद्ध उपसेट की आवश्यकता वाले प्रणाली
  • प्रदर्शन-महत्वपूर्ण डेटा संचालन
  • कई प्लेटफॉर्म पर Dart प्रोजेक्ट्स

विचार योग्य बातें

  • सरल सूचियों की तुलना में अधिक मेमोरी ओवरहेड
  • स्थिर डेटासेट के लिए आदर्श नहीं है
  • BST संकल्पनाओं की समझ आवश्यक है
  • बिल्ट-इन संग्रहों की तुलना में कम स्पष्ट
  • ट्री लॉजिक के डिबगिंग में संभावित जटिलता

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

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

}

श्रेणियाँ

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट

अभी कोई डेटा उपलब्ध नहीं है।