/data-structures

Data structures: theory and implementation.

Primary LanguagePython

Data-structures

I took COMS W3134 Data Structures in Java in 17 spring semester, which is a required course for Computer Science related major students at Columbia University. This course is taught by Professor Paul Blaer. It was a really fun class.

The topics dicussed in this course includes:

General Concepts

  • Abstract Data types
  • Basic proofs by induction
  • Recursion

Basic Java Concepts

  • Java OOP
  • Generic programming
  • Inner classes
  • Iterator
  • Comparable

Analysis of Algorithms

  • Big-O notation
  • Growth of functions

List

  • ArrayList
  • LinkedList

Stacks and Queues

Trees

  • Binary Tree
  • Binary Search Tree
  • AVL Tree.

Hash Table

Priority Queues

  • Binary Heap

Sorting Algorithms

  • Selection Sort
  • Insertion Sort
  • Heap Sort
  • Merge Sort
  • Quick Sort

Graphs

  • Graph theory
  • Shorest paths and Dijsktra's Algorithm
  • Minimum Spanning Tree - Prim's Algorithm and Kruskal Algorithm
  • TSP problem (Nearest Neighbor Approximation, Brute Force Solution)
  • P vs NP and NP-completeness.