csc211

Data Structures and Algorithms

Exam Preparation: 30 hours
Deep Understanding: 90 hours
Subject Code CSC 211
Credit Hours 3 Hours
Nature Theory + Lab
Full Marks 60 + 20 + 20
Pass Marks 24 + 8 + 8
Description

This course includes the basic foundations of data structures and algorithms, covering concepts of stack, queue, list, tree, graph, sorting and searching.

Objective

Introduce data abstraction and data representation in memory,Describe, design and use elementary data structures such as stack, queue, linked list, tree, and graph,Discuss decomposition of complex programming problems into manageable sub-problems,Introduce algorithms and their complexity

Course Contents

Introduction to Data Structures & Algorithms

4 Hours

Data types, Data structure and Abstract Data Type (ADT), Dynamic memory allocation in C, Introduction to Algorithms, Asymptotic notations and common functions

Stack

4 Hours

Basic concept of Stack, Stack as an ADT, Stack Operations, Stack Applications, Conversion from infix to postfix/prefix expression, Evaluation of postfix/prefix expressions

Queue

4 Hours

Basic concept of Queue, Queue as an ADT, Primitive Operations in Queue, Linear Queue, Circular Queue, Priority Queue, Queue Applications

Recursion

3 Hours

Principle of Recursion, Comparison between Recursion and Iteration, Tail Recursion, Factorial, Fibonacci Sequence, GCD, Tower of Hanoi (TOH), Applications and Efficiency of Recursion

Lists

8 Hours

Basic concept, List and ADT, Array Implementation of Lists, Linked List, Types of Linked List: Singly, Doubly, Circular, Basic operations: Node Creation, Insertion, Deletion (Beginning, End, Specified Position), Stack and Queue as Linked List

Sorting

8 Hours

Introduction and types of sorting: Internal and External, Comparison Sorting: Bubble, Selection, Insertion, Shell Sort, Divide and Conquer Sorting: Merge, Quick, Heap Sort, Efficiency of Sorting Algorithms

Searching and Hashing

6 Hours

Introduction to Searching, Search Algorithms: Sequential and Binary Search, Efficiency of Search Algorithms, Hashing: Hash Function, Hash Tables, Collision Resolution Techniques

Trees and Graphs

8 Hours

Concepts and definitions, Basic operations in Binary Tree, Tree Height, Level, Depth, Binary Search Tree: Insertion, Deletion, Traversals, Search in BST, AVL tree and Balancing algorithm, Applications of Trees, Definition and Representation of Graphs, Graph Traversal, Minimum Spanning Trees (Kruskal and Prim's Algorithm), Shortest Path Algorithms: Dijkstra Algorithm

Laboratory Works

Dynamic memory allocation and deallocation strategies,Stack operations and Queue operations,Array and Linked List implementation of Lists,Linked List implementation of Stack and Queues,Sorting, Searching and Hashing algorithms,Binary Search Trees and AVL Trees,Graph Representation, Spanning Tree and Shortest Path Algorithms

Books

Textbooks

Y. Langsam, M.J. Augenstein, A.M. Tanenbaum: Data Structures using C and C++, Prentice Hall India, Second Edition 2015

Reference Books

Leen Ammeral: Programs and Data Structures in C, Wiley Professional Computing
G.W. Rowe: Introduction to Data Structure and Algorithms with C and C++, Prentice Hall India
R.L. Kruse, B.P. Leung, C.L. Tondo: Data Structure and Program Design in C, Prentice-Hall India