## EC8393     FUNDAMENTALS OF DATA STRUCTURES IN C                 L T P C 3 0 0 3

OBJECTIVES:  To learn the features of C  To learn the linear and non-linear data structures  To explore the applications of linear and non-linear data structures  To learn to represent data using graph data structure  To learn the basic sorting and searching algorithms

UNIT I       C PROGRAMMING BASICS                                                                                     9 Structure of a C program – compilation and linking processes – Constants, Variables – Data Types – Expressions using operators in C – Managing Input and Output operations – Decision Making and Branching – Looping statements. Arrays – Initialization – Declaration – One dimensional and Two-dimensional arrays. Strings- String operations – String Arrays. Simple programs- sortingsearching – matrix operations.

UNIT II      FUNCTIONS, POINTERS, STRUCTURES AND UNIONS                                    9 Functions – Pass by value – Pass by reference – Recursion – Pointers - Definition – Initialization – Pointers arithmetic. Structures and unions - definition – Structure within a structure - Union - Programs using structures and Unions – Storage classes, Pre-processor directives.

UNIT III    LINEAR DATA STRUCTURES                                                                                   9 Arrays and its representations – Stacks and Queues – Linked lists – Linked list-based implementation of Stacks and Queues – Evaluation of Expressions – Linked list based polynomial addition.

UNIT IV     NON-LINEAR DATA STRUCTURES                                                                        9 Trees – Binary Trees – Binary tree representation and traversals –Binary Search Trees – Applications of trees. Set representations - Union-Find operations. Graph and its representations – Graph Traversals.

UNIT V       SEARCHING AND SORTING ALGORITHMS                                                       9 Linear Search – Binary Search. Bubble Sort, Insertion sort – Merge sort – Quick sort - Hash tables – Overflow handling.

TOTAL: 45 PERIODS
OUTCOMES: Upon completion of the course, students will be able to:  Implement linear and non-linear data structure operations using C  Suggest appropriate linear / non-linear data structure for any given data set.  Apply hashing concepts for a given problem  Modify or suggest new data structure for an application  Appropriately choose the sorting algorithm for an application

TEXTBOOKS:
1. Pradip Dey and Manas Ghosh, ―Programming in C, Second Edition, Oxford University Press, 2011.
2. Ellis Horowitz, Sartaj Sahni, Susan Anderson-Freed, ―Fundamentals of Data Structures in C, Second Edition, University Press, 2008.

REFERENCES:
1. Mark Allen Weiss, ―Data Structures and Algorithm Analysis in C, Second Edition, Pearson Education, 1996
2. Alfred V. Aho, John E. Hopcroft and Jeffrey D. Ullman, ―Data Structures and Algorithms, Pearson Education, 1983.
3. Robert Kruse, C.L.Tondo, Bruce Leung, Shashi Mogalla , ― Data Structures and Program Design in C, Second Edition, Pearson Education, 2007
4. Jean-Paul Tremblay and Paul G. Sorenson, ―An Introduction to Data Structures with Applications, Second Edition, Tata McGraw-Hill, 1991.