Code Monkey home page Code Monkey logo

structures's Introduction

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!

structures's People

Contributors

ashish-chopra avatar gansai avatar havanagrawal avatar jaintarunjain avatar joshvandewalle avatar prakhar96 avatar shivamgoel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

structures's Issues

removeAt() is hard coded. Again same silly mistake :(

removeAt() method called in execute(M) in com.applications.Josephus is hard-coded with 2 as parameter. While raising the issue i didn't go into depth, but this seems suspicious.

God!! I really need a good code reviewer!!

In Queue.java isEmpty() returns false in every case.

Rectify the code in Queue.java. It returns a false value in all positive and negative test conditions. Please look into the test code also if written for this data structure.
I doubt how its passing???

 public boolean isEmpty() {
         return false;
 }

Readme.md needs a redesign

We need to create the opening title page for the project "README.md". It has a peculiar syntax. We need to define following items:

  1. What this project is about?
  2. How to download & run?
  3. Contributors list
  4. Licensing

Please add your comments on it, what more can be included in title page.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.