Sunteți pe pagina 1din 3

edunep.

com

ITC 215: Data Structure and Algorithm


Module Objectives The module objectives of the course are to provide a systematic introduction to data structures and algorithms for constructing efficient computer programs. The course enables the student to Understand and use the process of abstraction using a programming language such as 'C'. Analyze step by step and develop algorithms to solve real world problems. Implementing various data structures viz. Stacks, Queues, Linked Lists, and Trees Understanding various searching & sorting techniques with their time and space complexities Contents Fundamentals of data representation. Arrays Recursion Stacks and Queues using Arrays Stacks and Queries using Arrays Linear Data Structures and their linked representations Linear Data Structures and this linked representations Non linear data structures: Trees, Sorting, Graphs Detailed Course 1. Fundamentals of data representation. LH 3 Abstract Data Types (ADT): Fundamental (Primitive) and Derived (Compound) data types ADT representation of data structures: rational number, stack and queue Definition of data structure and algorithm Types of problem solving approaches: Divide & conquer, Dynamic programming, and Approximation algorithms. How to write an algorithm? Algorithm analysis: time and space complexity Algorithmic notation: Big "oh", Big "omega"( Sigma), and Theta Best, Worst ,and Average case analysis 2. Arrays Representation of Array in Memory (Row/Column Major) Various operations on Arrays: insertion, deletion, updates. Application of arrays: Matrix multiplication. 3. Recursion Principle of recursion Recursion types: Direct and Indirect Comparison with Iteration Advantages and Disadvantages Recursion removal, tail recursion Applications: TOH, Fibonacci series, factorial, product of numbers 4. Stacks and Queues using Arrays Representation of stacks and queues using arrays Stack-operations: push and pop LH 3

LH 3

edunep.com Stack applications: Evaluation of Infix, Postfix & Prefix expression, Expression validation algorithm Operations in queue: Enqueue and Dequeue Linear, Circular, and Priority Queues LH 7

5. Linear Data Structures and their linked representations Definition of list o Static implementation of list: arrays o Dynamic implementation of list: structure Linked list: o Singly o Doubly o Circular Operations in linked list: insertion, deletion, updates, searching, counting. Stacks and queues as Linked list 6. Hon linear data structures: trees Basic terminologies: node, root, leaf, forest, height, level, depths etc. Binary tree and its types Binary tree traversal methods: Preorder, In-order, and Post-ordered traversal Binary tree operations: insertion, and deletions. Expression trees Binary search trees Height balanced (AVL) tree, weight balanced tree, and balancing algorithms Applications

LH 8

7. Searching LH 5 Searching techniques Sequential, Binary, and Tree search with their complexities Hashing o Hash function and hash tables o Collision resolution techniques: linear probing, quadratic probing, dynamic hashing 8. Sorting Types of sorting: Internal and external Selection, Bubble, and Insertion sorts with complexities Divide and conquer algorithms: Quick sort and Merge sort Heap sort 9. Graphs Representation and application Graphs as an ADT Shortest path algorithms: Greedy, and Dijkstra's Graph traversals: depth first and breadth first, Minimum spanning trees, Kruskal's algorithm LH 5

LH 4

edunep.com PRACTICAL There shall be 24 lab exercises from different chapters. The programming tool may be C. Note: The students are required to undertake a project work. The project work can be done individually or in group (at most 4 - 5 students). The format of the project report is as follows: o Project Description o Description of entities or object considered in the project o Algorithm or Diagram showing description of project o Conclusion of the project The project report should be original, and the reproduction of others' work is strictly prohibited. Number of pages of the report should be at least 4. References E. Horowitz, Sahni and D. Mehta, "Fundamentals of Data Structures in C++," 2002 Galgotia Publication 2002 G. L Heileman, "Data Structures, Algorithms and Object Oriented Programming", First Edition, 2002, Tata McGraw Hill. R.Kruse, C.L Tondo and B.Leung, "Data Structures and Program Design in C Second Edition, 1997, Pearson Education. S.Chottopadhyay, D.Ghoshdastidar & M.Chottopadhyay. "Data Structures through C Language", First Edition, 2001, BPB Publication V.Langsam, WI.J.Augenstein and A.M.Tanenbaum, "Data Structures Using C and C++", Second Edition, 2000, Prentice Hail of India.

S-ar putea să vă placă și