bubble

bubble is a new data structure based on the idea of fibonacci heaps

https://github.com/spirosmaggioros/bubble

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.9%) to scientific vocabulary

Keywords

avl-tree binary-search binary-search-tree data-structures fibonacci-heap heap tree tree-structure
Last synced: 6 months ago · JSON representation ·

Repository

bubble is a new data structure based on the idea of fibonacci heaps

Basic Info
Statistics
  • Stars: 5
  • Watchers: 1
  • Forks: 0
  • Open Issues: 2
  • Releases: 0
Topics
avl-tree binary-search binary-search-tree data-structures fibonacci-heap heap tree tree-structure
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

bubble: A new data structure based on the idea of fibonacci heaps

bubble

Overiew

bubble is a data structure that uses an array and avl trees to store elements. You have to define an initial size(like bubble) and once the array of size=5 is full, then the next elements are going to be inserted inside avl trees. The code is header-only and only relies on STL, except from the avl_tree.hpp header that is implemented inside the src/ folder, though you can just put it inside the bubble.h file and be just fine. Note that you can put any binary tree structure you like instead of an avl tree, bubble is generic. \ You can check more about the container at the tutorial folder

Complexity

The time complexity of insertion, deletion and searching of an element is $O(logn + logm) == O(log(n+m))$ where n is the initial array size and m is the size of the avl tree that the key is going to be.

Example

```cpp

include "src/bubble.h"

int main() { bubble b; b.insert(-20, -10, 0, 10, 20); b.insert(15, 16, -5, -6); assert(b.search(15) == true); b.remove(15); assert(b.search(15) == false); std::vector elements = b[3]; // returns {15, 16}

std::cout << b  << '\n'; // custom ostream operator

} ```

Licence

The code is licenced under the MIT Licence: Copyright © 2024 Spiros Maggioros

Please cite the creators if you want to include this code to a project or a product using the bibitex bellow or using "Cite this repository" at "about" on the right view panel. @software{Spiros_bubble_A_new_2024, author = {Spiros, Maggioros}, month = aug, title = {{bubble: A new data structure based on the idea of fibonacci heaps}}, url = {https://github.com/spirosmaggioros/bubble}, version = {0.0.1}, year = {2024} }

Run unit tests

To run unit tests on Unix based systems, just do bash mkdir build && cd build cmake .. make cd tests && ./runUnitTests

Contribute

General contributions are always welcome and we definetely need more people working on this to make sure to have no bugs and manage to have the fastest implementation that we can. In order to contribute just create a pull request explaining your addition or fix as clearly as you can.

Owner

  • Name: Spiros Maggioros
  • Login: spirosmaggioros
  • Kind: user
  • Location: Athens , Greece
  • Company: National Technical University of Athens

Sophomore ECE student and IEEEXtreme Greece's Lead

Citation (citation.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Spiros"
  given-names: "Maggioros"
  orcid: "https://orcid.org/0009-0002-0208-4749"
title: "bubble: A new data structure based on the idea of fibonacci heaps"
version: 0.0.1
date-released: 2024-08-18
url: "https://github.com/spirosmaggioros/bubble"

GitHub Events

Total
Last Year

Dependencies

.github/workflows/test_cases.yml actions
  • actions/checkout v3 composite
  • codecov/codecov-action v4.0.1 composite
requirements.txt pypi
  • attrs ==23.2.0
  • coverage ==7.4.4
  • iniconfig ==2.0.0
  • packaging ==24.0
  • pluggy ==1.4.0
  • py ==1.11.0
  • pyparsing ==3.1.2
  • pytest ==8.1.1
  • pytest-cov ==4.1.0
  • tomli ==2.0.1
.github/workflows/docs-deploy.yml actions
  • actions/checkout v4 composite
  • actions/configure-pages v4 composite
  • actions/deploy-pages v4 composite
  • actions/upload-pages-artifact v3 composite