Data Structures - 605227

Summer Semester 2008/2009

Course News:


Course Description:

Algorithmic problem solving, Data Structures (static & dynamic), lists, stacks, queues, graphs, trees, sets and dictionaries). Recursion and iteration. Students are expected to do lab experiments using C++ or Java.

Learning Outcomes:

 

 

At the end of the course, students are expected to learn:

-        How to represent and implement linked lists and their operations.

-         To think recursively and implement recursion.

-         Understand and utilize stacks and queues are in their implementations.

-         String representations and their basic operations.

-         How to allocate and deallocate memory dynamically.

-         Trees terminology, their representations and their usages in applications.

-         Basic vocabulary of graph concepts, graph representations.

 
 


 

 

 

 

 

 

 

Course Outline:

 

Topic

Sections

Notes

1

Introduction

( 6 Hrs)

Introduction and Motivation

Slides in PDF form

2

What are References?

 

3

Reference and Objects

 

4

Dynamic Memory Allocation

 

5

Linked Data Representation

(9 Hrs)

Linear Linked Lists & Definition

Slides in PDF form

6

Linked List Diagramming

 

7

Add, Delete, Search, Print

 

8

Other Linked Data Structures

 

9

Introduction to Recursion

(3 Hrs)

Introduction and Motivation

Slides in PDF form

10

Thinking Recursively

 

11

Applications

First Exam

12

Linear Data Structures

Stacks & Queues

(9 Hrs)

Introduction and Motivation

Slides in PDF form

13

Some background on Stacks

 

14

ADT's for Stacks and Queues

 

15

Using Stacks to Check Balanced parentheses

 

16

Using Stacks to evaluate Postfix Expressions

 

17

Implementing the Stack

 

18

How C implement Recursive Function Calls Using Stacks

 

19

Implementation of Queue ADT

 

20

More Queue Applications

 

21

Trees

(6 Hrs)

Introduction and Motivation

Slides in PDF form

22

Basic Concepts and Terminology

 

23

Binary Trees

 

24

Sequential Binary Tree Representation

 

25

Applications - Heaps and Priority Queues

 

26

Traversing Binary Trees

 

27

Binary Search Trees

 

28

AVL Trees (Optional)

 

29

Two-Three Trees (Optional)

 

30

Tries (Optional)

Second Exam

31

Graphs

(6 Hrs)

Introduction and Motivation

Slides in PDF form

32

Basic Concepts and Terminology

 

33

Graph Representation

 

34

Graph Searching

 

35

Advanced Topics

(6 Hrs)

Introduction to Algorithm Analysis

 

36

String Processing

Final Exam


Textbook:

·        Java Foundations: Introduction to Program Design and Data Structures, Addison-Wesley, 2008 

Suggested references:

Grading

Tools used in the course:

 

 

Return Home