Skip to content

halls7588/Data_Structures_in_15_Languages

Repository files navigation

Data Structures

A general list of Data Structures implemented in 15 different programming languages. Java, JavaScript, Kotlin, C#, C++, Objective-C, Swift, PHP, Python, Ruby, Type Script, Visual Basic, C, Scala and Go. I will be implementing 30 different Data Structures and many Algorithms with them as well as providing detailed explanations about each data structure. This is a work in progress and is a very massive project so please be patient as i have a life and a full time job and I am the only one working on this at the moment. This project is intended to help newer developers, code school graduates, and self-taught developers learn and grasp the basic concepts of Data Structures to help build a foundation of basic engineering concepts and algorithm design in whatever language they feel most comfortable with. The Goal on this project is to demonstrate beginning and advanced computer science and engineering principals in a simple and easy to use way. The code is written in a very simple for so that newer developer can follow along and grasp advanced topics easily.

What’s been implemented so far:

Java, C#, kotlin and Visual Basic have been implemented fully but not tested, C++, JavaScript and PHP have been started but not finished. With 450 data structures to write in 15 different languages, I want to get the majority of the code out of the way first and fix bugs latter. Thankfully these are all pretty simple to test once i do and shouldn’t take that much time.

Below is a list of links to each of the completed data structures in respective languages. Just find the one that you want and click on the link.

PHP

Data Structures implemented
Arrays

Circular Array in PHP

Lists

Doubly Linked List in PHP

Linked List in PHP

Trees

Binary Tree in PHP

Stacks

Arrayed Stack in PHP

Linked Stack in PHP

Queues

Arrayed Queue in PHP

Linked Queue in PHP

Heaps
Hashtabels
Graphs

JavaScript

Data Structures implemented
Arrays

Circular Array in JavaScript

ArrayList in JavaScript

Lists

Doubly Linked List in JavaScript

Linked List in JavaScript

Trees

Binary Tree in JavaScript

AVL Tree in JavaScript

Red Black Tree in JavaScript

Stacks

Arrayed Stack in JavaScript

Linked Stack in JavaScript

Queues

Arrayed Queue in JavaScript

Linked Queue in JavaScript

Heaps
Hashtabels
Graphs

Java

Data Structures implemented
Arrays

Circular Array in Java

ArrayList in Java

Arrayed Set in Java

Associative Array in Java

Sorted Array in Java

Lists

Doubly Linked List in Java

Linked List in Java

Skip List in Java

Linked Set in Java

Trees

Binary Tree in Java

B-Tree in Java

Self Balancing Binary Tree in Java

Splay Tree in Java

Red Black Tree in Java

AVL Tree in Java

Stacks

Arrayed Stack in Java

Circular Stack in Java

Linked Stack in Java

Queues

Arrayed Queue in Java

Priority Queue in Java

Circular Queue in Java

Deque in Java

Linked Queue in Java

Heaps

Linked Heap in Java

Arrayed Heap in Java

Heap Sort in Java

Hashtabels

Hashset in Java

Hashtabel in Java

Graphs

Undirected Graph in Java

Directed Graph in Java

C#

Data Structures implemented
Arrays

Circular Array in C#

ArrayList in C#

Arrayed Set in C#

Associative Array in C#

Sorted Array in C#

Lists

Doubly Linked List in C#

Linked List in C#

Skip List in C#

Linked Set in C#

Trees

Binary Tree in C#

B-Tree in C#

Self Balancing Binary Tree in C#

Splay Tree in C#

Red Black Tree in C#

AVL Tree in C#

Stacks

Arrayed Stack in C#

Circular Stack in C#

Linked Stack in C#

Queues

Arrayed Queue in C#

Priority Queue in C#

Circular Queue in C#

Deque in C#

Linked Queue in C#

Heaps

Linked Heap in C#

Arrayed Heap in C#

Heap Sort in C#

Hashtabels

Hashset in C#

Hashtable in C#

Graphs

Undirected Graph in C#

Directed Graph in C#

Visual Basic

Data Structures implemented
Arrays

Circular Array in Visual Basic

ArrayList in Visual Basic

Arrayed Set in Visual Basic

Associative Array in Visual Basic

Sorted Array in Visual Basic

Lists

Doubly Linked List in Visual Basic

Linked List in Visual Basic

Skip List in Visual Basic

Linked Set in Visual Basic

Trees

Binary Tree in Visual Basic

B-Tree in Visual Basic

Self Balancing Binary Tree in Visual Basic

Splay Tree in Visual Basic

Red Black Tree in Visual Basic

AVL Tree in C#

Stacks

Arrayed Stack in Visual Basic

Circular Stack in Visual Basic

Linked Stack in Visual Basic

Queues

Arrayed Queue in Visual Basic

Priority Queue in Visual Basic

Circular Queue in Visual Basic

Deque in Visual Basic

Linked Queue in Visual Basic

Heaps

Linked Heap in Visual Basic

Arrayed Heap in Visual Basic

Heap Sort in Visual Basic

Hashtabels

Hashset in Visual Basic

Hashtable in Visual Basic

Graphs

Undirected Graph in Visual Basic

Directed Graph in Visual Basic

Kotlin

Data Structures implemented
Arrays

Circular Array in Kotlin

ArrayList in Kotlin

Arrayed Set in Kotlin

Associative Array in Kotlin

Sorted Array in Kotlin

Lists

Doubly Linked List in Kotlin

Linked List in Kotlin

Skip List in Kotlin

Linked Set in Kotlin

Trees

Binary Tree in Kotlin

B-Tree in Kotlin

Self Balancing Binary Tree in Kotlin

Splay Tree in Kotlin

Red Black Tree in Kotlin

AVL Tree in Java

Stacks

Arrayed Stack in Kotlin

Circular Stack in Kotlin

Linked Stack in Kotlin

Queues

Arrayed Queue in Kotlin

Priority Queue in Kotlin

Circular Queue in Kotlin

Deque in Java

Linked Queue in Kotlin

Heaps

Linked Heap in Kotlin

Arrayed Heap in Kotlin

Heap Sort in Java

Hashtabels

Hashset in Kotlin

Hashtabel in Kotlin

Graphs

Undirected Graph in Kotlin

Directed Graph in Kotlin

Getting Started

Download or clone the Repo, Load your IDE of choice, Pick your language and pick you’re Data Structure, and the code should be ready to use. Please not that this code has been tested and it may require some minor changes to work.

Prerequisites

Depending on the language you wish to use, you will need a compatible IDE capable of running the type of code you are using. Place note these were not built to be projects but rather to be added to your own project. In example:

To use the C# Binary Tree, clone the tree and place it into your Visual Studio Project
To Use the Java Linked List, clone the List and place it into you IntelliJ project
ect. ect. 

Deployment

Please note, this code was intended to help newer developers to grasp the concepts of various Data Structures. View the projects section of for the language and data structure you want. If the data structure in question has not been moved to the closed column, then the code has not been tested and may not work or may need modification to work properly.

Contributing

Please read CONTRIBUTING.md And CODE_OF_CONDUCT.md for details on our code of conduct, and the process for submitting pull requests to us.

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Things that still need to get done:

  1. Remaining data structures in about 11 programming languages need to be built.
  2. All code needs to be tested and bugs documented, issue submitted, and fixed. In the projects section, Anything under the Done column needs to be tested. anyting tested and passed needs to be moved to closed column.
  3. TypeScript, Swift, Objective-c, Scala, and Ruby I have very little knowldge of. Hoping to find someone to take these projects over, or I will eventually teach myself these languages and do them.

This is a great project for a college student to gain expirence or for another developer who wants to get expirence with data structures and algorithms. Im available to help out as needed.

If you would like to contribute please contact me @ halls7588@gmail.com. Otherwise I will get to it when I have time. A few languages have been completed but not tested. See below for details.