Linear data structures: Time and space complexity, Stacks and Queues –implementation and Applications. Linked Lists – Singly Linked Lists, Doubly Linked Lists, Circular Lists, and Application of Linked Lists. Non-linear data structures: Trees - Representation and Traversals, Binary Trees, Binary Search Trees- Operations, Graphs – Representation and Traversals- BFS, DFS.
Sorting and Searching: Bubble sort, Selection sort, Insertion sort, Quick sort, Radix sort, Merge sort, Heaps – Binary Heap and its Application, Linear & Binary search.
Algorithm Design Techniques: Greedy Algorithms, Divide and Conquer method, Dynamic Programming, Backtracking.
If any hands-on request can be taught in python.
Useful for placement activities.
Learning outcomes:
1. Understanding of fundamental Data Structures including linked lists, trees, binary search trees, AVL trees, stacks, queues, priority queues, and hash-tables
2. Understanding of basic algorithmic complexity.
3. Ability to devise novel solutions to small-scale programming challenges involving data structures and recursion.
4. Solve problems involving graphs, trees, and heaps
5. Apply an Algorithm for solving problems like sorting, searching, insertion, and deletion of data