This course includes the basic foundations of data structures and algorithms, covering concepts of stack, queue, list, tree, graph, sorting and searching.
Introduce data abstraction and data representation in memoryDescribe, design and use elementary data structures such as stack, queue, linked list, tree, and graphDiscuss decomposition of complex programming problems into manageable sub-problemsIntroduce algorithms and their complexity
Data types, Data structure and Abstract Data Type (ADT), Dynamic memory allocation in C, Introduction to Algorithms, Asymptotic notations and common functions
Basic concept of Stack, Stack as an ADT, Stack Operations, Stack Applications, Conversion from infix to postfix/prefix expression, Evaluation of postfix/prefix expressions
Basic concept of Queue, Queue as an ADT, Primitive Operations in Queue, Linear Queue, Circular Queue, Priority Queue, Queue Applications
Principle of Recursion, Comparison between Recursion and Iteration, Tail Recursion, Factorial, Fibonacci Sequence, GCD, Tower of Hanoi (TOH), Applications and Efficiency of Recursion
Basic concept, List and ADT, Array Implementation of Lists, Linked List, Types of Linked List: Singly, Doubly, Circular, Basic operations: Node Creation, Insertion, Deletion (Beginning, End, Specified Position), Stack and Queue as Linked List
Introduction and types of sorting: Internal and External, Comparison Sorting: Bubble, Selection, Insertion, Shell Sort, Divide and Conquer Sorting: Merge, Quick, Heap Sort, Efficiency of Sorting Algorithms
Introduction to Searching, Search Algorithms: Sequential and Binary Search, Efficiency of Search Algorithms, Hashing: Hash Function, Hash Tables, Collision Resolution Techniques
Concepts and definitions, Basic operations in Binary Tree, Tree Height, Level, Depth, Binary Search Tree: Insertion, Deletion, Traversals, Search in BST, AVL tree and Balancing algorithm, Applications of Trees, Definition and Representation of Graphs, Graph Traversal, Minimum Spanning Trees (Kruskal and Prim's Algorithm), Shortest Path Algorithms: Dijkstra Algorithm
Dynamic memory allocation and deallocation strategiesStack operations and Queue operationsArray and Linked List implementation of ListsLinked List implementation of Stack and QueuesSorting, Searching and Hashing algorithmsBinary Search Trees and AVL TreesGraph Representation, Spanning Tree and Shortest Path Algorithms