Skip to content

tdn90/Data-Structures-Algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structures & Algorithms

I. Introduction:

  • This repository will help demonstrate my experience so far regarding Data Structures and Algorithms, one of the many vital aspects in Computer Science.

  • Before we start, I would like to give special credits to:

  1. Algorithms book by Robert Sedgewick, Kevin Wayne. This book is really a wonderful learning source for me.
  2. Professor George T. Heneiman, a truly wonderful, dedicated professor at Worcester Polytechnic Institute.
  3. Edx online learning platform, one of the best self-learning sources I have found.

With that being said, let's begin!


II. Data Structures:

  • Here are the data structures and ADTs available in the dataStruct package:
  1. Interfaces:
  • List
  • Stack
  • Queue
  1. Classes:

a. Implementing List, Stack, Queues:

  • Array List
  • Linked List
  • Fixed Circular Queue
  • Fixed Size Stack
  • MultiSet

b. Binary Search Tree:

  • Binary Tree
  • AVL

c. Heap:

  • Heap (abstract class)
  • MaxHeap
  • MinHeap

d. HashMap:

  • Chain
  • ChainingHashMap

e. Graph:

  • Node
  • Edge
  • Graph (abstract class)
  • Directed Graph
  • Undirected Graph

III. Algorithms:

  • There are currently 5 sub-packages in algorithms package:
  1. SortingAlgs:
  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Merge Sort (in-class version and my prior version)
  • Quick Sort (in-class version and my prior version)
  • Heap Sort
  • Counting Sort **
  • Radix Sort **

** These sorting algorithms only work for arrays of integers, whereas the others can work on arrays of any Comparable objects.

  1. ExpressionEvaluator:

a. Package nodes: consists of provided stub classes for different type of mathematical operators.

b. PEMDAS Evaluator: based on Dijkstra two-stack algorithm, I implemented a complete expression evaluator.

  1. Games (console game):
  • Tower of Hanoi.
  • Word Ladder game.
  • Word Pyramid game.
  1. Recursion Practice:
  • Binary Search
  • Euclidean Alg
  • Resursive Alg (including Tower Of Hanoi solver)
  1. Cryptography:
  • Ceasar Cipher (encryption + decryption)

Whew, that should be it for now. There are several other algorithms that I might consider including here in the future. And there are so many others out there that I have not completely explored (AI for example). Stay tuned, since the journey has just begun :)

---------------------------------THE END?----------------------------------------

About

A Summary of my experience in Data Structures & Algorithms

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages