Draw binary tree in plain text
Project description
drawtree
========
.. image:: https://img.shields.io/pypi/v/drawtree.svg?style=flat-square&label=latest%20version
:target: https://pypi.python.org/pypi/drawtree
:alt: Latest PyPI version
Draw binary tree in plain text
Usage
-----
Draw tree from level order traversal, '#' signifies a path terminator where no node exists below.
.. code-block:: python
from drawtree import draw_level_order
draw_level_order('{3,9,20,#,#,15,7}')
::
3
/ \
9 20
/ \
15 7
Draw random binary search tree
.. code-block:: python
from drawtree import draw_random_bst
draw_random_bst(10)
::
64
/ \
/ \
4 66
\ \
37 70
/ \
8 51
/ \
6 12
\
21
Draw binary search tree from integer array
.. code-block:: python
from drawtree import draw_bst
nums = [55, 30, 10, 5, 2, 20, 15, 25, 40, 35, 70, 60, 80, 75, 95]
draw_bst(nums)
::
55
/ \
/ \
/ \
/ \
30 70
/ \ / \
/ \ / \
/ \ 60 80
10 40 / \
/ \ / / \
/ \ 35 75 95
5 20
/ / \
2 / \
15 25
Command line
------------
Flags:
-p, --preorder interpet sequence as preorder
-b, --balanced auto balance bst
-l, --level-order interpet sequence as level-order
Print a bst:
.. code-block:: bash
$ bst 10 5 8 4 6
$ bst nodes.txt
$ echo "colin eric dave" | bst
$ cat nodes.txt | sort | uniq | bst
Print a balanced bst:
.. code-block:: bash
$ bst -b 10 5 6 9 3
$ bst -b nodes.txt
$ bst -b < nodes.txt
Print a bst from a preorder expression:
.. code-block:: bash
$ bst -p dave colin dan
$ echo "1 2 3 4 5" | bst -p
$ bst -p nodes.txt
Print a binary tree from a level order expression:
.. code-block:: bash
$ bst -l [4,#,7,5,9,#] (leetcode format)
$ bst -l {4 # 7 5}
Print a random bst:
.. code-block:: bash
$ bst (random bst of 10 nodes)
$ bst 5 (random bst of 5 nodes)
$ bst -b 7 (random balanced bst of 7 nodes)
Installation
------------
To install drawtree, simply:
.. code-block:: bash
$ pip install drawtree
Licence
-------
MIT
Reference
---------
`Draw tree <http://web.archive.org/web/20071224095835/http://www.openasthra.com/wp-content/uploads/2007/12/binary_trees1.c>`_
Authors
-------
`drawtree` was written by `Madhusudan Banik <msbanik@gmail.com>`_.
========
.. image:: https://img.shields.io/pypi/v/drawtree.svg?style=flat-square&label=latest%20version
:target: https://pypi.python.org/pypi/drawtree
:alt: Latest PyPI version
Draw binary tree in plain text
Usage
-----
Draw tree from level order traversal, '#' signifies a path terminator where no node exists below.
.. code-block:: python
from drawtree import draw_level_order
draw_level_order('{3,9,20,#,#,15,7}')
::
3
/ \
9 20
/ \
15 7
Draw random binary search tree
.. code-block:: python
from drawtree import draw_random_bst
draw_random_bst(10)
::
64
/ \
/ \
4 66
\ \
37 70
/ \
8 51
/ \
6 12
\
21
Draw binary search tree from integer array
.. code-block:: python
from drawtree import draw_bst
nums = [55, 30, 10, 5, 2, 20, 15, 25, 40, 35, 70, 60, 80, 75, 95]
draw_bst(nums)
::
55
/ \
/ \
/ \
/ \
30 70
/ \ / \
/ \ / \
/ \ 60 80
10 40 / \
/ \ / / \
/ \ 35 75 95
5 20
/ / \
2 / \
15 25
Command line
------------
Flags:
-p, --preorder interpet sequence as preorder
-b, --balanced auto balance bst
-l, --level-order interpet sequence as level-order
Print a bst:
.. code-block:: bash
$ bst 10 5 8 4 6
$ bst nodes.txt
$ echo "colin eric dave" | bst
$ cat nodes.txt | sort | uniq | bst
Print a balanced bst:
.. code-block:: bash
$ bst -b 10 5 6 9 3
$ bst -b nodes.txt
$ bst -b < nodes.txt
Print a bst from a preorder expression:
.. code-block:: bash
$ bst -p dave colin dan
$ echo "1 2 3 4 5" | bst -p
$ bst -p nodes.txt
Print a binary tree from a level order expression:
.. code-block:: bash
$ bst -l [4,#,7,5,9,#] (leetcode format)
$ bst -l {4 # 7 5}
Print a random bst:
.. code-block:: bash
$ bst (random bst of 10 nodes)
$ bst 5 (random bst of 5 nodes)
$ bst -b 7 (random balanced bst of 7 nodes)
Installation
------------
To install drawtree, simply:
.. code-block:: bash
$ pip install drawtree
Licence
-------
MIT
Reference
---------
`Draw tree <http://web.archive.org/web/20071224095835/http://www.openasthra.com/wp-content/uploads/2007/12/binary_trees1.c>`_
Authors
-------
`drawtree` was written by `Madhusudan Banik <msbanik@gmail.com>`_.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
drawtree-0.1.2.tar.gz
(5.4 kB
view hashes)