All Projects → ashish-chopra → Structures

ashish-chopra / Structures

Licence: MIT license
Collection of abstract data structures implemented in Java

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Structures

Data structure and algorithms library
A collection of classical algorithms and data-structures implementation in C++ for coding interview and competitive programming
Stars: ✭ 133 (+34.34%)
Mutual labels:  graph-algorithms, tree-structure
graphcountries
An easy to use GraphQL API to query country-related data for free and without restrictions
Stars: ✭ 61 (-38.38%)
Mutual labels:  graph-algorithms
Erdos.jl
A library for graph analysis written Julia.
Stars: ✭ 37 (-62.63%)
Mutual labels:  graph-algorithms
treetime
TreeTime is a data organisation, management and analysis tool. A tree is a hierarchical structure that arranges information in units and sub-units. TreeTime uses linked trees (one data item can be part of different distinct trees) to store and organise any general purpose data.
Stars: ✭ 26 (-73.74%)
Mutual labels:  tree-structure
docker-bakery
Dockerfile hierarchy management tool with automatic rebuilding of dependent images when parent changes
Stars: ✭ 30 (-69.7%)
Mutual labels:  tree-structure
LocalGraphClustering
No description or website provided.
Stars: ✭ 114 (+15.15%)
Mutual labels:  graph-algorithms
ASAP
AAAI 2020 - ASAP: Adaptive Structure Aware Pooling for Learning Hierarchical Graph Representations
Stars: ✭ 83 (-16.16%)
Mutual labels:  graph-algorithms
tektosyne
The Tektosyne Library for Java provides algorithms for computational geometry and graph-based pathfinding, along with supporting mathematical utilities and specialized collections.
Stars: ✭ 52 (-47.47%)
Mutual labels:  graph-algorithms
stefano-tree
Framework agnostic Nested Set (MPTT) implementation for PHP
Stars: ✭ 24 (-75.76%)
Mutual labels:  tree-structure
graph-library
Data Structure and Algorithm for Graphs
Stars: ✭ 14 (-85.86%)
Mutual labels:  graph-algorithms
TreeRep
Learning Tree structures and Tree metrics
Stars: ✭ 18 (-81.82%)
Mutual labels:  tree-structure
DI-treetensor
Let DI-treetensor help you simplify the structure processing!(树形运算一不小心就逻辑混乱?DI-treetensor快速帮你搞定)
Stars: ✭ 134 (+35.35%)
Mutual labels:  tree-structure
ts-union
ADT sum type in typescript
Stars: ✭ 65 (-34.34%)
Mutual labels:  adt
mazes
A comprehensive library of algorithms for creating perfect mazes.
Stars: ✭ 64 (-35.35%)
Mutual labels:  graph-algorithms
data-structures-algorithms
Self-practice in Data Structures & Algorithms
Stars: ✭ 29 (-70.71%)
Mutual labels:  tree-structure
Algorithms-Java
A collection of common algorithms and data structures implemented in Java.
Stars: ✭ 141 (+42.42%)
Mutual labels:  graph-algorithms
abap-adt-api
Abap Developer Tools client
Stars: ✭ 25 (-74.75%)
Mutual labels:  adt
metahelm
Install dependency graphs of Kubernetes Helm Charts
Stars: ✭ 70 (-29.29%)
Mutual labels:  graph-algorithms
Learn-Data Structure-Algorithm-by-Javascript
Data Structure and Algorithm explanations with Implementations by Javascript
Stars: ✭ 55 (-44.44%)
Mutual labels:  graph-algorithms
FunctionLibrary
A library to learn Algorithms and Data Structures for newbies
Stars: ✭ 13 (-86.87%)
Mutual labels:  graph-algorithms

Build Status

What are we working on?

  1. Adding elementary sorts and some applications of LinkedList, Trees.
  2. Implementing Graph Algorithms
  3. Testing Data Structures with huge data.

Welcome to Structures!

Structures is a nice compilation of abstract data structures that we could think of! Since its inception, it is growing slowly into a huge collection of ADT journal. We have written the intuition behind developing each structure in its code as introductory comment block with algorithmic analysis and its merits and de-merits.

The de-merits of one ADT leads to the motivation of creating another ADT, so you will find it like a chain story to browse :P

How to use it?

Well, the repostiory is like a journal. You can browse inside src folder and will see the code arranged in intuitive package structure. And, each code file consists of good amount of writeup at the top to motivate the reader about the intuition behind the class design. But, sometimes a table of contents become handy, so checkout the wiki to get a formal introduction to the repo.

PS: You may find that we are not strictly following the JAVA coding conventions (for instance, not using camelcase for variable names everywhere, using u, v, w somewhere etc). This is because, our focus is not on JAVA, but on algorithms, and we want to preserve mathematical expressions for known things, so that it remains connected to Robert Sedgewick book's literature.

How to download?

'Structures' is a maven project. You must have any latest version of Git, Maven installed in your machine and follow the steps mentioned below:

Clone the repo using command and generate eclipse project files:

>$ git clone https://github.com/ashish-chopra/Structures.git
>$ cd Structures                 // browse inside Structures       
>$ mvn eclipse:eclipse           // it generates the eclipse specific files, so that 
                                 // you can import this project into eclipse

Then, Import the project into Eclipse by File > Import > Existing Maven Project into Workspace.

I have also tried Visual Studio Code as well. Make sure you installed the Java Langauge Support extension from RedHat for VS code and then follow following commands to get started:

>$ git clone https://github.com/ashish-chopra/Structures.git
>$ cd Structures       # browse inside Structures      
>$ code .              # open up VS code editor at this location

Inside editor, open the command window using Ctrl+Shift+p, type configure build task, select maven; it will create .vscode folder inside your project structure. Then, use command Ctrl+Shift+b to run the project maven build. I will add the support for other commands soon. If you can, then send me a pull request.

Other commands:

>$ mvn compile     		// this will only compile your source code
>$ mvn test        		// this will run the test suite
>$ mvn javadoc:javadoc  // generates the java doc of all the ADTs
							   // at "Structures/target/site/apidocs/"

You can run these commands from command line inside your Structures directory. Or using Eclipse by right click Structures > Run As > Maven Build ...

I found a bug/new feature!

Structures' bugs are tracked using Github Issue tracker system.

Please use issue tracker for following purpose:

  1. to raise a bug request; do include specific details and label it appropriately.
  2. to suggest any improvements in existing features.
  3. to suggest new features or structures or applications.

I want to contribute!

Awesome! Please fork the repository and make a new branch & start developing a new feature or fix a bug. Then send a pull request. I will review the submissions and add it into the main repo.

And also thanks to many contributors for their submissions. I will keep adding them here.

  1. Shivam Goel
  2. Havan Aggarwal
  3. Gansai
  4. Tarun Jain
  5. Miguel Stephane

License

The code is licensed under MIT License. Let's have fun coding together!

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].