Course Structure: Lectures: 3 Labs: 0 Credit Hours: 3
Prerequisites: None
Objectives: This course provides an introduction to the data structures used in computer programming and to overview the design and mathematical analysis of algorithms to solve problems efficiently.
Course Outline: Introduction / Brief overview of Data Structure and operations performed on them, Algorithmic Notation, Complexity of Algorithms Mathematical Notation and Functions Floor &Ceiling, Remainder, Modular Arithmetic, Integer and Absolute Function, Factorial Function, Permutation, Logarithms and Exponent Control Structures Sequential flow, conditional flow and repetitive flow Storing String Record oriented fix length storage, Variable length with fixed maximum, Linked storage String Operation Concatenation, length of string, index, sub-string Word Processing Replacement, Insert and Delete Arrays Linear Array & Array representation in memory, Operation on liner array (Traversing, Insertion, Deleting, Searching (liner, binary), Sorting (Bubble sort, Selection sort) Record Introduction to records and their memory representation Linked List Representation of linked list in Memory, Operation performed on linked lists (Traversing, Searching, Insertion, and Deletion), header linked lists, Two way linked lists Stack Stacks and their implementation by an array and by linked lists, Operation perform on linked list (push & pop) Arithmetic Expressions Prefix, Postfix and Infix, Calculation of prefix and postfix expressions, Conversion from infix to prefix & vice versa Queue Introduction, Representation, Insertion and Deletion operations Binary Trees Memory representation of binary tree, driving tree of Arithmetic Expiration, Tree traversing (preorder, post-order, in-order ), Binary search tree (Introduction, Insertion and Searching) Sorting Quick sort, Insertion sort, Merge sort, Radix sort Graph Introduction to Graph theory, Memory representation of Graph.
Text/Reference/Recommended Books: