CPEN 204:Data Structures and Algorithms

Main block


History and overview of data structures and algorithms, role of algorithms in computing. Pointers and Structures: Pointer Data Types and Pointer Variables, Introduction to Structures, Accessing Structure Members, Pointers and Structures as Structure Members. Fundamental concepts: Recursion, Divide-and-Conquer , Backtracking. Data Abstraction and Abstract Data Types (ADT). Fundamental Data Structures: Arrays and Lists. Linked Lists: Introduction to the concepts of linked lists. Doubly linked-list, circular doubly linked list with a sentinel. Applications of linked list. Queues: Introduction to the concepts of queues and double ended-queues. Applications and implementations of queues. Stacks: Introduction to the concepts of stacks. Applications and implementations of stacks. Analysis of Algorithms: Asymptotic Notation, Performance of searching and sorting algorithms. Searching Algorithms: Search algorithms, sequential search, and binary search. Sorting Algorithms: Quick Sort, Merge sort, Selection sort, Insertion sort, Bubble sort. Graphs: Graph representation, Operations on graphs, Graph Traversals, Shortest Path algorithms, Minimal Spanning Trees. Trees: Concepts of trees, binary trees, binary search trees, binary tree traversal algorithms. *Standard Template Library(STL): Components of STL, containers, iterators, algorithms.