An open API service indexing awesome lists of open source software.

https://github.com/hyperpy/flat-tree

Utilities for navigating flat trees
https://github.com/hyperpy/flat-tree

hypercore hypercore-protocol

Last synced: 14 days ago
JSON representation

Utilities for navigating flat trees

Awesome Lists containing this project

README

          

# flat-tree

[![Build Status](https://drone.autonomic.zone/api/badges/hyperpy/flat-tree/status.svg)](https://drone.autonomic.zone/hyperpy/flat-tree)

## Utilities for navigating flat trees

> Flat Trees are the core data structure that power Hypercore feeds. They allow
> us to deterministically represent a tree structure as a vector. This is
> particularly useful because vectors map elegantly to disk and memory. Because
> Flat Trees are deterministic and pre-computed, there is no overhead to using
> them. In effect this means that Flat Trees are a specific way of indexing
> into a vector more than they are their own data structure. This makes them
> uniquely efficient and convenient to implement in a wide range of languages.

## Install

```sh
$ pip install flat-tree
```

## Example

```python
from flat_tree import FlatTreeIterator

tree_iter = FlatTreeIterator()

print("tree index: ", tree_iter.index)
print("tree first parent: ", tree_iter.parent())
print("tree next parent", tree_iter.parent())
```

Output:

```sh
tree index: 0
tree first parent: 1
tree next parent 3
```