Course Overview

Course Synopsis

Data Structures is a core course in a typical undergraduate Computer Science Curriculum. The topics covered in the course are among the most fundamental material in all of computer science. The course prepares the students for (and is a prerequisite for) the more advanced material students will encounter in later courses. The course will cover wellknown data structures such as dynamic arrays, linked lists, stacks, queues, tree, heap, disjoint sets and table. Three goals will be accomplished:
(1) Implement these structures in C++
(2) Determine which structures are appropriate in various situations
(3) Confidently learn new structures beyond what''s presented in this class

Course Learning Outcomes

At the end of the course, you should be able to:
 Understand Abstract Data Types such as Lists, Queues etc.
 Understand and program Stack operations (Push, Pop, isEmpty)
 Understand and implement Queue Operations (Insert, Remove) using Linked Lists
 Describe binary Trees
 Know about height balanced trees and application of trees

Course Calendar

4

Linked List and Its Types

7

Infix and Postfix Expressions

8

Implementation of Stack

Assignment No. 1
Quiz No. 1
12

Implementation of Binary Tree

15

Levelorder Traversal of a Binary Tree

16

Deleting a Node from BST

18

Usage of const keyword

Graded Discussion Board
22

AVL Tree Rotations [1/2]

Quiz No. 2
Mid Term Exams
23

AVL Tree Rotations [2/2]

27

Properties of Binary Tree

Assignment No. 2
28

Inorder Traversal in Threaded Trees

31

Implementation of Heap

33

Uses of Heap & Disjoint Set ADT

Quiz No. 3
35

Dynamic Equivalence Problem

36

Union and Find Operations of Disjoint Set ADT

37

Image Segmentation & Maze Generation

39

Searching an Array: Binary Search

41

Skip List (cont..) & Hashing

42

Collision Resolution Methods in Hashing

43

Applications of Hashing

45

Sorting and Course Overview



