Subjects Taught

Back to Subjects

CS213 | Data Structure and Algorithms

Introduction to Data Structures and Algorithms Introduction to Course Download
Solving the Problem Improve the Naïve Solution Download
Fibonacci Series Algorithms and Complexity Download
Greatest Common Divisor Algorithms and Complexity Download
Big O Notation Algorithms and Complexity Download
Multi-dimensional Arrays Arrays Data Structure Download
Singly Linked List, Doubly Linked List List Data Structure Download
Linked List Implementation List Data Structure Download
Stack Implementation - Array Class Stack Data Structure Download
Stack Implementation - List Class Stack Data Structure Download
Stack Application - RPN (Reverse Polish Notation) Stack Data Structure Download
Queue Implementation - List Class Queue Data Structure Download
Queue Implementation - Array Class Queue Data Structure Download
Deque - The STL and Iterator Queue Data Structure Download
Trees - Terminology and Applications Tree Data Structure Download
Tree Implementation - Abstract Tree Tree Data Structure Download
Tree Traversals - Breadth and Depth First Traversals Tree Data Structure Download
Binary Tree Implementation Binary Tree Data Structure Download
Binary Tree - Applications and Traversals Binary Tree Data Structure Download
Priority Queues Binary Tree Data Structure Download
Binary Heaps - Priority Queues Binary Tree Data Structure Download
Complete Binary Trees Binary Tree Data Structure Download
Disjoint Sets - Naive Implementation Disjoint Sets Data Structure Download
Disjoint Sets - Efficient Implementation Disjoint Sets Data Structure Download
Log Processing Hash Tables Data Structures Download
Addressing Hash Tables Data Structures Download
Hash Functions Hash Tables Data Structures Download
Binary Search Tree - Introduction BST Data Structure Download
Binary Search Tree - Basic Functions BST Data Structure Download
Graph Theory Graph Data Structure Download
Graph ADT Graph Data Structure Download
Graph Traversals Graph Data Structure Download
Connectedness Graph Data Structure Download
Single Source Unweighted Path Lengths Graph Data Structure Download
Minimum Spanning Tree Graph Data Structure Download
Prim's Algorithm Graph Data Structure Download
Kruskal's Algorithm Graph Data Structure Download
Introduction to Course Data Structures & Algorithms Download
Solve a Challenging Code Problem Maximum Pairwise Product Download
Why Study Algorithms? An Introduction Download
Fibonacci Series Algorithm Download
Big-O Notation Computing Runtimes Download
Basic Data Structure Arrays, Multi-Dimensional Arrays Download
Linked List Singly Linked List & Doubly Linked List Download
Stacks Implementation & Applications Download
Stack Application Reverse Polish Notation Download
Queues Implementation & Applications Download
Trees Terminology & Applications Download
Tree Traversal Breadth-First & Depth-First Traversals Download
Binary Trees In-Order, Pre-Order & Post-Order Traversals Download
Priority Queues Naïve implementation Download
Binary Heaps Priority Queues Download
Complete Binary Trees How to keep a tree shallow? Download
Disjoint Sets Naïve Implementation Download
Disjoint Sets Efficient Implementation - Forest Download
Hash Tables Introduction Download
Hash Tables Hash Functions Download
Binary Search Trees Introduction Download
Binary Search Trees Basic Operations Download
Decomposition of Graphs Representing and Exploring Graphs Download
Decomposition of Graphs Connectivity Download
Directed Acyclic Graph Topological Sorting Download
Directed Graph Strongly Connected Components Download
Paths in Graph Most Direct Route - BFS Download
Paths in Graph Fastest Route - Dijkstra Algorithm Download
Minimum Spanning Tree Kruskal & Prim Algorithms Download
Introduction to Data Structures Memory Allocation, Linked Allocation, Indexed Allocation, INode Download
Lists Relation, Operation, Implementation & Memory Requirements Download
Linked List Structure, Operations, Implementation Download
Stack Stack Implementation via Linked List & Arrays Download
Stack Application: Parsing XHTML Parsing XHTML using Stack Download
Stack Application: Infix to Postfix Infix, Postfix, Prefix Notations, Infix to Postfix Algorithm Download
Stack Application: Reverse Polish Notation Reverse Polish Notation Solution Algorithm Download
Queues Queue Implementation via Linked List & Arrays Download
Deque Abstract Deque, STL, Stepping though Deques, Iterators Download
The Tree Data Structure Tree Terminology, Tree Example: XHTML and CSS, MathML Download
Abstract Trees Tree Implementation Download
Tree Traversals Breadth First Search, Back Tracking, Depth First Search - Pre Order & Post Order Download
Binary Trees Full vs Complete Binary Tree, InOrder, PreOrder, PostOrder, Level Order, Euler Tour Traversals Download
Complete Binary Tree Recursive Algorithm, Array Storage, Finding Children, Finding Parent Download
N-ary Trees Ternary Trees, Quaternary Trees, TRIE Download
Balanced Trees Height Balancing, Null-Path-Length Balancing, Weight Balancing Download
Binary Search Trees BST Examples, BST Implementation, Finding Kth Object Download
AVL Trees AVL Trees, Height of an AVL Tree, Maintaining Balance Download
Graph Theory Undirected Graph, Degree, Sub Graphs, Path, Weighted Graph, Directed Graph, DAG Download
Graph Data Structures Adjacency Matrix, Sparse Matrix Download
Graph Traversals Breadth First Traversal, Depth First Traversal Download
Connectedness Determining Connections, Connected Components Download
Single Source Un-weighted Path Length Determine Distances of all nodes from a single node Download
Identifying Bipartite Graph Bipartite Graph, Algorithm to find Bipartite Graphs Download
Minimum Spanning Tree Minimum Spanning Trees and Its Applications Download
Prims Algorithm Prims Algorithms Strategy and Execution Download
Kruskals Algorithm Kruskals Algorithm for Minimum Spanning Tree Download
Single Source Shortest Path Graph Application Download
Dijkstra's Algorithm Shortest Path Algorithm Download
Topological Sort Scheduling Download
Graph Evolution Graphs - Past, Present and Future Download
Introduction to Data Structures Memory Allocation, Linked Allocation, Indexed Allocation, INode Download
Lists Relation, Operation, Implementation & Memory Requirements Download
Linked List Structure, Operations, Implementation Download
Stack Implementation using Link List and Arrays Download
Stack Application - I Parsing XHTML Download
Stack Application - II Infix to Postfix - RPN Download
Stack Application - III Reverse Polish Notation Download
Queues Implementation using Link List and Arrays Download
Tree Data Structure Tree Terminologies and Examples Download
Abstract Tree General Tree - Implementation Download
Tree Traversals Breadth First, Depth First, Back- Tracking Download
Binary Trees Implementation of Binary Node Class, Expression Trees Download
Complete Binary Trees Tree Height, Add Node, Remove Node, Children and Parents Download
Binary Search Trees BST Implementation, Finding Kth Object Download
Graph Theory Graph Terminologies and Examples Download
Graph Data Structure Adjacency Matrix, Sparse Matrix, Adjacency List Download
Graph Traversals Breadth First, Depth First, Traversal Applications Download
Connectedness Determining Connections, Connected Components Download
Path Lengths Single Source Unweighted Path Lengths Download
Bipartite Graph Identifying Bipartite Graphs Download
Minimum Spanning Tree Spanning Trees on Weighted Graphs, Spanning Forests Download
Prims Algorithm To find Minimum Spanning Tree Download
Kruskals Algorithm To find Minimum Spanning Tree Download
Algorithm Analysis Big-O Notation Download
Abstract Data Type ADT Representation Download
Arrays Polynomial, Sparse Matrix Download
Linked List Implementation Download
Circular and Doubly Link List List ADT Operation Download
Stack Tower of Hanoi Download
Infix to Postfix Stack Application Download
Queues Job Scheduling, Circular Queues Download
Trees Implementation, Traversals Download
Binary Tree In Order, Post Order, Euler Tour Download
Binary Search Trees AVL Trees, Multi-Way Search Trees Download
Graph Terminology, Implementation, Traversals Download
Dijkstra's Algorithm and MST Minimum Spanning Tree Download
Data Structure and Algorithms

Data Structure and Algorithm Analysis (3rd Edition)
By: Mark Allen Wiess

Course Info

A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this course, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in C++ programming language and will practice implementing them in programming assignments. This will help you to understand what is going on inside a particular built-in implementation of a data structure and what to expect from it. You will also learn typical use cases for these data structures.

Introduction to Algorithms, Solve Challenging Problems, Big-O Notation | Basic Data Structure: Linked List, Stacks, Queues, Trees, Binary Trees | Advance Data Structures: Priority Queues, Disjoint Sets, Hash Tables, BST | Graph Algorithms: Directed Acyclic Graph, Paths in Graphs, Minimum Spanning Tree


Course Aim
  • Introduction to Algorithms, Solve Challenging Problems, Big-O Notation
  • Basic Data Structure: Linked List, Stacks, Queues, Trees, Binary Trees
  • Advance Data Structures: Priority Queues, Disjoint Sets, Hash Tables, BST
  • Graph Algorithms: Directed Acyclic Graph, Paths in Graphs, Minimum Spanning Tree

Learning Outcomes
  • Solve various computational problems and implement algorithmic coding problems in a C++
  • Develop and implement multiple tests to check its correctness and running time
  • Truly understand how the algorithms work and to master the art of programming
  • Analyze both road networks and social networks and learn how to compute the shortest route