Você está na página 1de 4

Wollo University College of informatics Department of computer science

Course Title: data structure and algorithms Course code: Credit hour: 3 hrs ECTs 5 Instructor Name: Abrha G . Office: @ Informatics College 1st floor Targeted group: Course Objective To have a good understanding of algorithm analysis techniques, computational and asymptotic complexity, Big-O, , , and little-o notations. To be able to write complexity functions for simple pieces of C++ code, and state their asymptotic complexity. To be able to describe the different types of linked list, and be able to implement them in C++. To be able to describe the different types of stacks and queues, and be able to implement them in C++. To be able to describe the different types of binary trees, and be able to implement them in C++. To be able to describe the nature and efficiency of different types of sorting algorithms. To be able to describe what is meant by hashing, hashing functions, and collision resolution in hashing. Course Description This course introduces Data Structures (Linear ,non-Linear Data Structures) and Algorithm Analysis Concepts, Measuring Complexity, Complexity of Algorithm Big-O Notation. Simple Sorting and Searching Algorithms (Bubble Sort, Insertion Sort, Selection Sort, Sequential Searching, Binary Searching.). Abstract Data Types, Structures, Pointers, Arrays, Linked Lists, Stacks, Queues, Trees, Graphs. Advanced Sorting and Searching Algorithms (Shell Sort, Quick Sort, heap Sort, Merge Sort, and Hashing)

e-mail:

Table contents and descriptions


Chapter 1 . Introduction to data structures and algorithms
1.1 Introduction to Data Structures Abstract Data Types Abstraction

1.2 Algorithms Properties of an algorithm Algorithm Analysis Concepts Complexity Analysis o Analysis rules o Formal Approach to Analysis

2.2 Measures of Times 2.3 Asymptotic Analysis The Big-Oh Notation o Big-O Theorems o Properties of the O Notation Big-Omega Notation Theta Notation Little-o Notation Little-Omega Notation 2.4 Relational Properties of the Asymptotic Notations

Chapter 2

Simple Sorting and Searching Algorithms 2.1 Searching

Linear Search (Sequential Search) Binary Search


2.2 Sorting Algorithms

Chapter 3

Insertion Sort Selection Sort Bubble Sort Data Structures 3.1 Introduction
Accessing Members of Structure Variables

Self-Referential Structures
Creating Linked Lists in C++
Defining the data structure for a linked list

3.2 Singly Linked Lists

Adding a node to the list Displaying the list of nodes Navigating through the list Deleting a node from the list 3.3 Doubly Linked Lists

Creating Doubly Linked Lists Adding a Node to a Doubly Linked List


Deleting a Node from a Doubly Linked List

3.4 Circular lists


3.5 Stacks

Skip lists Self-organising lists Sparse tables

Array Implementation of Stacks: The PUSH operation Array Implementation of Stacks: the POP operation Linked List Implementation of Stacks: the PUSH
operation Linked List Implementation of Stacks: the POP Operation Applications of Stacks o Evaluation of Algebraic Expressions o Infix to Postfix (RPN) Conversion o Function Calls 3.6 Queue

Simple array implementation of enqueue and dequeue


operations Circular array implementation of enqueue and dequeue operations Linked list implementation of enqueue and dequeue operation Deque (pronounced as Deck) Priority Queue

o Demerging Queues o Merging Queues Application of Queues


3.7 Trees

Chapter 4

Chapter 5

Tree Terminologies Data Structure of a Binary Tree Operations on Binary Search Tree o Insertion o Traversing - Breadth-first - Depth-first - Stackless depth-first o Application of binary tree traversal o Searching o Deletion Self-adjusting trees Heaps Polish notation and expression trees Graphs Advanced Sorting Algorithms Shell Sort Quick Sort Heap Sort Merge Sort Hashing Hash functions Collision resolution

Reference books:
Data Structures and Algorithms in C++ by A. Drozdek (Brooks/Cole, 2001). Assessments and Evaluation: Assignments, Tests. Mid Exams, final Exam, Project

Você também pode gostar