Course Description
Course Aims and objectives
Course outlines
Text book and references
Prerequisite
Grading policy
Instructors and office hours
Syllabus
Time table
Lecture Notes
Attached Files
Previous Exams
Course Description
Course Aims And Objective
By the completion of this course, the student should be able to design the data structure and choose the proper algorithm in order to implement a given task in an effective manner. Furthermore, the student should be able to use the C++ language to implement the algorithms presented in this course using the standard data structures. File processing is covered to let the student be able to deal with the most common operations related to file input and output.; |
Course Outline
Fundamental data structures | |
o Class and array review. o Stacks by arrays. o Queues by arrays. o Pointers review. o Linked lists. o Stacks by Linked List. o Queues by Linked List. o Doubly Linked List. o Heaps. o Trees. | |
Data structures search and sort algorithms | |
o Sorting: � Selection, Insertion, Bubble, Quick and Heap sorting algorithm � Select a suitable sorting algorithm and algorithms time and space complexities. o Searching: � Linear, Linear with high probability, Binary search algorithms � Hashing | |
File Processing | |
* Write to a file. * Read from a file. * Text file and Binary file. * Using write statment. * Using read statment. |
Text book and references
The Main Book | |
Title | Data Structures and Program Design in C++ |
Author(s) | |
Edition | 1999, International Edition |
Publisher | Prenice Hall |
The References Book | |
Title | C++ How to Program |
Author(s) | |
Edition | Third Edition or Fourth Edition |
Publisher | Prentice Hall |
Grading Policy
Activity | Weight |
الامتحان الاول | 20 |
الامتحان الثاني | 20 |
المختبر | 10 |
الامتحان النهائي | 50 |
Instructors And Office Hours
The Instructors of the Course |
Miscellaneous
Time Table
Subject | Hours | |
Introduction and Review | 9 | |
Introduction to Stacks ? Section 2.1.1Lists and Arrays ? Section 2.1.2 Stacks ? Section 2.1.3 First Example: Reversing a list ? Section 2.1.5 The Standard Template Library ? 2.2 Implementation of Stacks ? Section 2.2.1 Specification of Methods for Stacks. ? Section 2.2.2 The Class Specification ? Section 2.2.3 Pushing, Popping, and other Methods | 9 | |
Queues ? Section 3.1 Definitions ? Section 3.1.1 Queue Operations ? Section 3.2 Implementations of Queues ? Section 3.3 Circular Implementation of Queues in C | 9 | |
Linked Stacks and Queues ? Section 4.1 Pointers and Linked Structures ? Section 4.1.1 Introduction and Survey ? Section 4.1.2 Pointers and Dynamic Memory in C ? Section 4.1.3 The Basics of Linked Structures ? Section 4.2 Linked Stacks | 9 | |
? Section 4.3 Linked Stacks with Safeguards ? Section 4.3.1 The Destructor ? Section 4.3.2 Overloading the Assignment operator ? Section 4.3.3 The Copy Constructor ? Section 4.3.4 The Modified Linked ? Stack Specification. | 9 | |
First Exam ? Section 4.4 Linked Queues ? Section 4.4.1 Basic Declarations ? Section 4.4.2 Extended Linked Queues | 9 | |
Review the exam with students Recursion ? Section 5.1 Introduction to Recursion ? Section 5.1.1 Stack Frames for Subprograms ? Section 5.1.2 Tree of Subprogram Calls ? Section 5.1.3 Factorials: A Recursive Definition ? Section 5.1.4 Divide and Conquer: The Towers of Hanoi ? Section 5.2 Principles of Recursion ? Section 5.2.1 Designing Recursive Algorithms ? Section 5.2.2 How Recursion Works ? Section 5.2.3 Tail Recursion ? Section 5.2.4 When not to use Recursion ? Section 5.4 Tree Structured Programs | 18 | |
Lists and Strings ? Section 6.1 List Definition ? Section 6.1.1 Method Specification ? Section 6.2 Implementation of Lists ? Section 6.2.1 Class Templates ? Section 6.2.2 Contiguous Implementation ? Section 6.2.3 Simply Linked Implementation ? Section 6.2.4 Variation: Keeping the Current Position ? Section 6.2.5 Doubly Linked Lists ? Section 6.2.6 Comparison of Implementations | 18 | |
Review the exam with students Second Exam Searching ? Section 7.1 searching (Introduction) ? Section 7.2 Sequential Search ? Section 7.3 Binary Search ? Section 7.3.1 Ordered Lists ? Section 7.3.2 Algorithm Development ? Section 7.3.3 The Forgetful Version ? Section 7.3.4 Recognizing Equality ? Hashing | 18 | |
Binary Trees Section 10.1 Binary Trees Section 10.1.1 Definitions Section 10.1.2 Traversal of Binary Trees Section 10.1.3 Linked Implementation of Binary Trees Section 10.2 Binary Search Trees Section 10.2.1 Ordered Lists and Implementations Section 10.2.2 Tree Search Section 10.2.3 Insertion into a Binary Search Tree Section 10.2.4 Tree Sort Section 10.2.5 Removal from a Binary Search Tree | 9 | |
Section 10.3 Building a Binary Search Tree Section 10.3.1 Getting Started Section 10.3.2 Declarations and the main Function Section 10.3.3 Inserting a Node Section 10.3.4 Finishing the Task Section 10.3.5 Evaluation Section 10.3.6 Random Search Trees and Optimality | 18 | |
Final exam Revision | 9 |
Lecture Notes
Lecture Notes | ||
Lecture 10.ppt | View | |
Lecture1.ppt | View | |
Lecture2.ppt | View | |
sequentialSearch.ppt | View | |
Lecture 11.ppt | View | |
Lecture7&8.ppt | View | |
Lecture3.ppt | View | |
Lecture5&6.ppt | View | |
Lecture | ||
12 | ||
hashing.ppt | View | |
Lecture 09.ppt | View | |
Object Oriented Programming Using C-part1.doc | View | |
Lecture4.ppt | View | |
Input | ||
output | ||
files.doc | View | |
Lectures.doc | View | |
Lecture 12bst.ppt | View |
Attachment Files |
Previous Exams
Previous Exams | ||
DS(Final EXam).doc | View | |
DS | ||
second exam.doc | View | |
DS | ||
Second | ||
exam.doc | View | |
DS-First Exam.doc | View | |
FS | ||
DSFP | ||
FE | ||
2005.doc | View | |
First Exam.doc | View | |
DS(Final EXam)1.doc | View | |
DS | ||
Final exam 1 - 2005.doc | View | |
Data | ||
Raed | ||
final1.doc | View | |
Data | ||
Raed | ||
final.doc | View | |
DS | ||
SE | ||
FS | ||
2005.doc | View |