Syllabus

                      DATA STRUCTURES AND ALGORITHMS(210244)

Teaching Scheme                                         ExaminationScheme  

Lectures    :   4Hrs/week                       Theory    :  100 Marks                                                                                                                              

                                                                                                                    Prerequisite: Fundamentals of Programming Languages (Subject Code: 110013).

UNIT I: Review of 'C' [7 Hrs]

Arrays, Pointers: arrays & pointers.

Functions: Parameter passing call by value and call by reference, scope rules, functions and pointers, function returning pointer and pointer to function, String manipulations using arrays,pointer to pointer.

Structure and Union: Passing and returning structure as parameter for function ,structure and pointer.

Recursion: Definition, writing recursive functions & how recursion works.

File handling using C.

UNIT II: [TB 2] [7 Hrs]

Introduction to Algorithm, Data structures & Analysis of algorithms :

Introduction to Data Structures: Concept of data, Data object, Data structure, Abstract Data Types (ADT), realization of ADT in ‘C’.

Concept of Primitive and non primitive, linear and Non-linear, static and dynamic ,persistent and ephemeral data structures.

Analysis of algorithm: frequency count and its importance in analysis of an algorithm, Time complexity & Space complexity of an algorithm, Big ‘O’, ‘’ and ‘’ notations, Best, Worst and Average case analysis of an algorithm.

UNIT III:[TB 1] [8 Hrs]

Linear Data Structures using Sequential Organization:

Concept of sequential organization, Concept of Linear data structures, arrays as ADT, Storage representation of array – Row major and Column major & their address calculation, Multidimensional arrays, Concept of ordered list.

Applications : Polynomial representation using array, Concept of Sparse Matrix, it’s usage & representation using arrays, Algorithms for sparse matrix operations like addition, simple transpose, fast transpose & multiplication.

Analysis of the algorithms used.

Unit IV:[TB 1 & TB 2] [8 Hrs]

Sorting and searching techniques:

Need of sorting and searching, sorting order & stability in sorting.

Sorting Techniques: Algorithms for Bubble sort, Selection sort, Insertion sort, Shell sort, Radix sort, Quick sort and Merge sort.

Analysis of each sorting technique for best, worst and average case, Concept of Internal & External sorting.

Searching Techniques: Algorithms for Sequential search, Binary search, Fibonacci search & concept of Index Sequential search, analysis of each searching technique for best, worst and average case.

UNIT V:[TB 1] [9 Hrs]

Linear Data Structures using Linked Organization:

Limitations of static memory allocation. Dynamic memory allocation in C.

Concept of linked organization, Singly linked list, Doubly linked list, Circular linked list. Operations like insertion, deletion, traversal & other operations on these data structures.

Applications: Representation & manipulation of polynomials using circular linked lists, Application of doubly linked list in dynamic storage management, garbage collection and compaction. Representation of polynomial using generalized linked list (implementation not expected), Concept of skip list.

Analysis of the algorithms used.  

UNIT VI:[TB 1 & TB 2] [9 Hrs]

Stacks and Queues:

Stacks: Concept of stack as ADT, Representation and implementation of stack using sequential & linked organization.

Applications: Examples using implicit stack, Simulating recursion using explicit stack, Arithmetic expression conversion & evaluation, reversing a string, parsing : well- formed parenthesis checking, concept of multi-stack & it’s representation. Analysis of the algorithms used.

Queues: Concept of queue as ADT, Representation and implementation of linear queue & circular queue using sequential & linked organization.

Applications: Josephus problem, Job scheduling, Queue simulation, Categorizing data, Double ended queue, Multi-queue and Priority queue. Analysis of the algorithms used.(Implementation not expected)

 

Text Books (TB):

Reference Books(RB):

1.  A. Aho, J. Hopcroft, J. Ulman, “Data Structures and Algorithms”, Pearson Education, 1998, ISBN-0-201-43578-0

2.  Y. Langsam, M. Augenstin and A. Tannenbaum, “Data Structures using C and C++”, 2nd Edition, Prentice Hall of India, 2002, ISBN-81-203-1177-9

3.  J. Tremblay, P. Soresan, “An introduction to data structures with Applications”, 2nd edition, Tata McGraw-Hill International Editions, 1984, ISBN-0-07-462471-7.

             PROGRAMMING LABORATORY(210246)

 

 Teaching Scheme :                                                     Examination Scheme

 Practical : 4 Hours /week                                         Term Work : 25 marks

                                                                                     Practical     : 50 Marks

    Suggested List of Assignments Based on Data Structures and  Algorithm

Note: All Assignments to be implemented using C and Time and Space Complexity is to be verified with theoretical findings.