All Projects → djugei → treelike

djugei / treelike

Licence: Apache-2.0 license
A trait to abstract over common tree functionality

Programming Languages

rust
11053 projects
shell
77523 projects

Projects that are alternatives of or similar to treelike

treap
A thread-safe, persistent Treap (tree + heap) for ordered key-value mapping and priority sorting.
Stars: ✭ 23 (-30.3%)
Mutual labels:  tree, datastructure
Slim
Surprisingly space efficient trie in Golang(11 bits/key; 100 ns/get).
Stars: ✭ 1,705 (+5066.67%)
Mutual labels:  tree, datastructure
treap
🍃 🌳 🍂 Efficient implementation of the implicit treap data structure
Stars: ✭ 64 (+93.94%)
Mutual labels:  tree, datastructure
dslib
🌿 A library of "connected" data structures
Stars: ✭ 122 (+269.7%)
Mutual labels:  tree
gradle-dependencies-viewer
A simple web UI to analyze dependencies for your project based on the text data generated from "gradle dependencies" command.
Stars: ✭ 70 (+112.12%)
Mutual labels:  tree
Graph-Theory
The Repository is All about the Graph Algorithms. I am Still Working On it. I am trying to Note down all the variations of Popular graph Algorithms. I am also keeping the solution to the problems of Different Online Judges according to the topic. I hope you can find it useful.
Stars: ✭ 16 (-51.52%)
Mutual labels:  tree
awesome-landlord
A simple, single database multi-tenancy solution for Laravel 5.2+
Stars: ✭ 41 (+24.24%)
Mutual labels:  trait
prune
A tree library for Java 8 with functional sensibilities.
Stars: ✭ 22 (-33.33%)
Mutual labels:  tree
Algorithms
Data Structures & Algorithms. Includes solutions for Cracking the Coding Interview 6th Edition
Stars: ✭ 89 (+169.7%)
Mutual labels:  tree
ofxSpaceColonization
Space Colonization algorithm implementation in openFrameworks
Stars: ✭ 62 (+87.88%)
Mutual labels:  tree
sep-pay
Pay.ir Payment Package for Laravel 5.3+
Stars: ✭ 17 (-48.48%)
Mutual labels:  trait
kdtree-rs
K-dimensional tree in Rust for fast geospatial indexing and lookup
Stars: ✭ 137 (+315.15%)
Mutual labels:  tree
ofxLSystem
3D turtle graphics interpretation of L-Systems
Stars: ✭ 39 (+18.18%)
Mutual labels:  tree
leaflet-layer-tree-plugin
No description or website provided.
Stars: ✭ 31 (-6.06%)
Mutual labels:  tree
Learning-Made-Easy
This project can help you understand the Data Structure and Algorithms in a more efficient manner. It aims at scheduling the studies for maximizing marks during exams. Most students face this problem during exams that what to study to get the best out of their limited time.
Stars: ✭ 133 (+303.03%)
Mutual labels:  datastructure
qverse
Traverse any data with DPML commands.
Stars: ✭ 25 (-24.24%)
Mutual labels:  tree
nested-set
Nested Set is an Go implementation of the Nested set model for Gorm.
Stars: ✭ 44 (+33.33%)
Mutual labels:  tree
regexp-graph
No description or website provided.
Stars: ✭ 22 (-33.33%)
Mutual labels:  tree
10weeks-codingtest
구름EDU 10주완성 알고리즘 코딩테스트의 해설 답안집입니다
Stars: ✭ 122 (+269.7%)
Mutual labels:  datastructure
extraction
Tree Extraction for JavaScript Object Graphs
Stars: ✭ 70 (+112.12%)
Mutual labels:  tree

Treelike

This crate tries to provide a common trait for all kinds of trees. Two reasons for that:

Interoperability

Using a common trait allows third parties to switch tree implementations seamlessly. It also enables further abstractions to be built over for trees.

Automation

If you are implementing a tree, Treelike only requires you to implement two methods on your nodes, content to return its contents and children to list its children.

Many kinds of traversals and searches are then provided for free. I found myself implementing the same methods over and over on different trees, so that is my main motivation.

no_std

This crate tries to stay no_std compatible, but provides more functionality if allocations are available. The relevant types and methods contain a no_std section to discuss functionality and limitations.

Contributing

Please symlink the hooks to your local .git/hooks/ directory to run some automatic checks before committing.

ln -s ../../hooks/pre-commit .git/hooks/

Please install rustfmt and cargo-sync-readme so these checks can be run.

rustup component add rustfmt
cargo install cargo-sync-readme

Please execute cargo-sync-readme when you change the top-level-documentation. Please run cargo fmt whenever you change code. If possible configure your editor to do so for you.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].