Skip to main content

Library for Studying and Applying Tree Data Structure

Project description

BuildTest PyPi License Downloads PythonVersion

Library for Studying and Applying Tree Data Structure

Installation

pip install treekit

Sample Usage

>>> from treekit import binarytree
>>> bt1 = binarytree([13, 3, 14, 0, 4, None, None, None, 2, None, 7]) # data array in breadth-first order, see: https://en.wikipedia.org/wiki/Binary_tree#Arrays
>>> bt1.show() # this will create an output.html and open a tab in web browser to view it
>>> bt1.height
3
>>> bt1.inorder # bt.preorder # bt.postorder # bt.levelorder
[0, 2, 3, 4, 7, 13, 14]
>>> bt1.preorder
[13, 3, 0, 2, 4, 7, 14]
>>> bt1.diameter()
The sum of depths from the left and right subtrees of Node(3) is 4
4
>>> bt1.flatten(target="preorder", inplace=True)
>>> bt1.inorder
[13, 3, 0, 2, 4, 7, 14]
>>> bt1.preorder
[13, 3, 0, 2, 4, 7, 14]
>>> bt1.find_maximum_path_sum()
(43, Node(13))
>>> from treekit import binarytree
>>> bt2 = binarytree()
>>> bt2.compact_build([4, -7, -3, None, None, 8, -4, 9, -7, -4, None, 6, None, -1, -6, None, None, 0, 6, 7, None, 11, None, None, -1, -4, None, None, None, -2, None, -3])
>>> bt2.show() # this will create an output.html and open a tab in web browser to view it
>>> bt2.diameter()
The sum of depths from the left and right subtrees of Node(8) is 9
9
>>> from treekit import tree
>>> t1 = tree()
>>> t1.remove_invalid_parenthese('()())a)b()))')
['((ab()))', '((a)b())', '(()ab())', '(()a)b()', '(())ab()', '()(ab())', '()(a)b()', '()()ab()']
>>> t1.Fibonacci_numbers(n=5, a=[0, 1])
>>> t1.Fibonacci_numbers(n=5, a=[0, 1], distinct=True)
>>> t1.Lucas_numbers(n=5)
>>> t1.Tribonacci_numbers(n=8, distinct=True)
>>> t1.Fibonacci_numbers_generalized(n=15, a=[0]*7+[1], distinct=True)
>>> t1.word_break_DFS(s = "catsanddog", wordDict = ["cats", "dog", "sand", "and", "cat"])
>>> t1.word_break_BFS(s = "catsanddog", wordDict = ["cats", "dog", "sand", "and", "cat"])
>>> t1.climbing_stairs(n_steps = 8)
>>> t1.coin_change(coins = [3, 5], amount = 12)
>>> t1.coin_change(coins = [1, 2, 3], amount = 6)
>>> t1.decode_ways(s = "11106")
>>> from treekit import tree
>>> t2 = tree()
>>> t2.tree_traversals_summary()
>>> t2.validate_IP_address()
>>> from treekit import bst
>>> bst1 = bst(h=4)
>>> bst1.show()
>>> from treekit import heap # Max Heap
>>> from random import randint
>>> array = [randint(-100, 100) for x in range(30)]
>>> maxheap1 = heap(array)
>>> maxheap1.array
>>> maxheap1.show()

Screenshot 1: Binary Search Tree, height = 4

image1


Screenshot 2: DFS Search Space for Removing Invalid Parentheses

image2


Screenshot 3a: Computation Space for Fibonacci Numbers (n=5, order=2)

image3a


Screenshot 3b: Computation Space for Fibonacci Numbers Generalized (n=15, order=8)

image3b


Screenshot 4: DFS Search Space for Work Break

image4


Screenshot 5: Max Heap

image5

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

treekit-0.0.22-py3-none-any.whl (798.5 kB view details)

Uploaded Python 3

File details

Details for the file treekit-0.0.22-py3-none-any.whl.

File metadata

  • Download URL: treekit-0.0.22-py3-none-any.whl
  • Upload date:
  • Size: 798.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.13

File hashes

Hashes for treekit-0.0.22-py3-none-any.whl
Algorithm Hash digest
SHA256 86b06dca70d44c308c09b098590a07a2ed1d89f2e244e7a9bf8217c9aaab24fa
MD5 09cfaf202ccee451c2adb40deda226e6
BLAKE2b-256 6d6b0cdad9ba89a1dbbac67c1ee0212a6eceab8f795c8ae6ab895d628c4f41ad

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page