# Virtual University of Pakistan

## CS301 : Data Structures

### 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 well-known 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

 1 Introduction
 2 List Implementation
 4 Linked List and Its Types
 6 Uses of Stack
 7 Infix and Postfix Expressions
 8 Implementation of Stack
Assignment No. 1
 9 Queues
 10 Priority Queues
 11 Binary Tree
Quiz No. 1
 12 Implementation of Binary Tree
 13 Binary Search Tree
 14 Recursion
 15 Level-order Traversal of a Binary Tree
 16 Deleting a Node from BST
 17 Reference Variables
 18 Usage of const keyword
 19 Degenerate BST
 20 AVL Tree [1/2]
 21 AVL Tree [2/2]
 22 AVL Tree Rotations [1/2]
Quiz No. 2
Mid Term Exams
 23 AVL Tree Rotations [2/2]
 24 Uses of Binary Trees
 25 Expression Tree
 26 Huffman Encoding
 27 Properties of Binary Tree
Assignment No. 2
 28 Inorder Traversal in Threaded Trees
 29 Heap [1/2]
 30 Heap [2/2]
 31 Implementation of Heap
 32 Methods of Heap
 33 Uses of Heap & Disjoint Set ADT
Quiz No. 3
 34 Equivalence Relations
 35 Dynamic Equivalence Problem
 36 Union and Find Operations of Disjoint Set ADT
 37 Image Segmentation & Maze Generation