Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

List of datastructures and algorithms to implement #1

Open
2 of 12 tasks
jenspots opened this issue Dec 31, 2022 · 1 comment
Open
2 of 12 tasks

List of datastructures and algorithms to implement #1

jenspots opened this issue Dec 31, 2022 · 1 comment

Comments

@jenspots
Copy link
Owner

jenspots commented Dec 31, 2022

This list is a continuous work of progress.

Structures

Smart Pointers

  • Reference Counter rc
    • While useful, this data structure will require manual freeing. However, it allows to have multiple references to a single block of memory. For example, reading a value from an list which also contains rc values.

Associative Arrays

  • Extendible Hashing Table eht
  • Linear Hashing Table lht
  • Ternary Trie ttrie
  • Array Trie atrie
  • Ternary trie with path compression trie

Priority Queues

  • Biniomial Heap bh

Lists

  • Dequeue dq
  • Stack stack
    • This is currently implemented, but inefficiently relies on vec. Perhaps this can be implemented in a more focused manner.

Trees

  • B+ trees bplus
  • AVL trees avl
  • Semi-Splay trees sst
@jenspots
Copy link
Owner Author

The trie data structure has been implemented. For now, I think it's redundant to have multiple versions. There is a theoretical threshold at which it is more economical to switch from a Patricia trie to a binary-tree-based trie, but this also introduces a lot of complexity. The current implementation used binary trees with path compression, without rebalancing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant