Course Code:22DS102
Course Code:22DS102
Course Code:22DS102
Course Objectives:
1. The student should be able to choose appropriate data structures, understand the
ADT/libraries and use it to design algorithms for a specific problem.
2. Students should be able to understand the necessary mathematical abstraction to solve
problems.
3. To familiarize students with advanced paradigms and data structures used to solve
algorithmic problems.
4. Students should be able to come up with analysis of efficiency and proofs of
correctness.
UNIT-I: Dictionaries:
Need for Randomizing Data Structures and Algorithms, Search and Update Operations on Skip
Lists-insertion, removal, Maintaining the top most level, Probabilistic Analysis of Skip Lists-
bounding the height of a skip list, analyzing the search time of a skip list, space usage in skip
list, Deterministic Skip Lists.
UNIT-III: Trees:
String Operations, Brute-Force Pattern Matching, The Boyer-Moore Algorithm, The Knuth-
Morris-Pratt Algorithm, Standard Tries, Compressed Tries, Suffix Tries, The Huffman Coding
Algorithm, The Longest Common Subsequence Problem (LCS), Applying Dynamic Programming
to the LCS Problem.
UNIT-V:
Course Outcomes:
Textbooks:
1. Mark Allen Weiss, Data Structures and Algorithm Analysis using JAVA, 2ndEdition,
Pearson, 2004.
2. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford
Stein,Introduction to Algorithms, Third edition, MITPress.
References: