Package provides Andersson Tree implementation in pure Python.
Project description
AnderssonTree Package
Abstract
This package provides Andersson Tree implementation written in pure Python.
Sources of Algorithms
http://en.wikipedia.org/wiki/Andersson_tree http://user.it.uu.se/~arnea/abs/simp.html http://eternallyconfuzzled.com/tuts/datastructures/jsw_tut_andersson.aspx
Some concepts are inspired by bintrees package at http://bitbucket.org/mozman/bintrees, although this implementation does not support dict, heap, set compatibility.
Constructor
AnderssonTree() -> new empty tree;
AnderssonTree(mapping) -> new tree initialized from a mapping (requires only an items() method)
AnderssonTree(seq) -> new tree initialized from seq [(k1, v1), (k2, v2), … (kn, vn)]
Methods
__contains__(k) -> True if T has a key k, else False
__delitem__(y) <==> del T[y]
__getitem__(y) <==> T[y]
__iter__() <==> iter(T) <==> keys()
__len__() <==> len(T)
__repr__() <==> repr(T)
__reversed__() <==> reversed(T), reversed keys
__setitem__(k, v) <==> T[k] = v
__copy__() <==> copy()
clear() -> None, remove all items from T
copy() -> a shallow copy of T, tree structure, i.e. key insertion order is preserved
dump([order]) -> None, dumps tree according to order
get(k) -> T[k] if k in T, else None
insert(k, v) -> None, insert node with key k and value v, replace value if key exists
is_empty() -> True if len(T) == 0
iter_items([, reverse]) -> generator for (k, v) items of T
keys([reverse]) -> generator for keys of T
remove(key) -> None, remove item by key
remove_items(keys) -> None, remove items by keys
root() -> root node
traverse(f, [order]) -> visit all nodes of tree according to order and call f(node) for each node
update(E) -> None. Update T from dict/iterable E
values([reverse]) -> generator for values of T
Order values
ORDER_INFIX_LEFT_RIGHT - infix order, left child first, then right
ORDER_INFIX_RIGHT_LEFT - infix order, right child first, then left
ORDER_PREFIX_LEFT_RIGHT - prefix order, left child first, then right
ORDER_PREFIX_RIGHT_LEFT - prefix order, right child first, then left
ORDER_POSTFIX_LEFT_RIGHT - postfix order, left child first, then right
ORDER_POSTFIX_RIGHT_LEFT - postfix order, right child first, then left
Installation
from source:
python setup.py install
or from PyPI:
pip install anderssontree
Documentation
this README.rst, code itself, docstrings
anderssontree can be found on github.com at:
Tested With
Python2.7.5, Python3.3.2
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
Built Distributions
File details
Details for the file anderssontree-0.1.0.tar.gz
.
File metadata
- Download URL: anderssontree-0.1.0.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 852f17805d544fffa48ed7736c474ab1f8bf92b6bb800d6625755261986002c1 |
|
MD5 | bbbb81b5bcc05c06bccc33c34ff002af |
|
BLAKE2b-256 | 698fd83c26ebeb5c43ae7ce31fb74dd3fa73246e9649df83b7ebd419e4cebfaa |
File details
Details for the file anderssontree-0.1.0-py3.3.egg
.
File metadata
- Download URL: anderssontree-0.1.0-py3.3.egg
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c72541b82823743c1bbbef6712cc7899eeb00c2de6a462b08a9c638e8ff8cb1f |
|
MD5 | 866678e9d53d43049d9ea4aa604b2a9a |
|
BLAKE2b-256 | 64041e8c5a6637e6d0752f82d543c57cdfb008a10058c96d12d8321cfed02d6b |
File details
Details for the file anderssontree-0.1.0-py2.7.egg
.
File metadata
- Download URL: anderssontree-0.1.0-py2.7.egg
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eec88c9dbb684556e862afabbd9865c4d1e2ef64d78d99be4b3cb44d0b37c5ee |
|
MD5 | d12c49b56e8d9a2b77cb80c1067152ee |
|
BLAKE2b-256 | d06cbb8df2085248cf0d97fcde83555c76b0cb3e32a0c1cab75696ceb9645487 |