ENCT252
Data Structures and Algorithms
Syllabus
- Concept of data structure
- Introduction: data types, data structures and abstract data types
- Introduction to algorithms
- The Stack and Queue
- Stack operation
- Stack application: Evaluation of Infix, Postfix and Prefix expressions
- Operations in queue, Enqueue and Dequeue
- Linear and circular queue
- Priority queue
- List
- Definition
- Static and dynamic list structure
- Array implementation of lists
- Queues as list
- Definition
- Linked lists
- Dynamic implementation
- Operations in linked list
- Linked stacks and queues
- Doubly linked lists and its applications
- Recursion
- Principle of recursion
- TOH and Fibonacci sequence
- Applications of recursion
- Trees
- Concept
- Operation in Binary tree
- Tree search, insertion/deletions
- Tree traversals (pre-order, post-order and in-order)
- Height, level and depth of a tree
- AVL balanced trees and Balancing algorithm
- The Huffman algorithm
- B-Tree
- Red Black Tree
- Sorting
- Types of sorting: internal and external
- Insertion and selection sort
- Exchange sort
- Merge and Redix sort
- Shell sort
- Heap sort as a priority queue
- Big ‘O’ notation and Efficiency of sorting
- Searching
- Search technique
- Sequential, Binary and Tree search
- General search tree
- Hashing
- Hash function and hash tables
- Collision resolution technique
- Growth Functions
- Asymptotic notations: notations and their properties
- Graphs
- Representation and applications
- Transitive closure
- Warshall’s algorithm
- Graphs type
- Graph traversal and Spanning forests
- Depth First Traversal and Breadth First Traversal
- Topological sorting: Depth first, Breadth first topological sorting
- Minimum spanning trees, Prim’s, Kruskal’s and Round-Robin algorithms
- Shortest-path algorithm
- Greedy algorithm
- Dijkstra’s Algorithm