BACK TO CS401 MAIN PAGE |
This course presents a number of essential data structures and related algorithms used in computer science. Performance analysis, in the way of asymptotic upper bound estimates, is applied to the algorithms used in specific data structures. Emphasis is placed on object oriented design and data abstraction in the creation and application of data structures.
Required Text: C++ Plus Data Structures by Nell Dale, Jones and Bartlett publisher, 3rd edition.
A laboratory Course in C++ Data Structures by James Roberge, Stefan Brandle, David Whittington, Jones and Bartlett publisher, 2nd edition.
References: Introduction to Algorithms, by Cormen, T. C. Leiserson, D. Rivest, MIT Press publisher, 2nd edition.
C++ How to Program by Deitel and Deitel, Prentice Hall publisher, 3rd edition.
Course Goals:
Students should be able to:
Explain, implement the following data structures:
· Lists (unordered and ordered)
· Stacks
· Queues
Analyze time and space complexity of algorithms using asymptotic upper bounds (big-O notation).
Explain and use pointers, dynamic memory allocation, and linked structures for the above listed data structures.
Outline basic object-oriented design concepts:
· Composition
· Inheritance
· Polymorphism
· Dynamic Method Binding
Write and test recursive procedures with linked structures, and explain the run time stack concept.
Explain, implement and apply the following hierarchical data structures:
· Expression trees
· Binary search trees
· Heaps
Analyze sorting and searching algorithms, and explain their relationship to data structures.
Choose and implement appropriate data structures to solve an application problem.
Topics:
The following is a list of major topics that will be covered in the course:
18. Trees, Expression Tree ADT, Binary Search Trees.
19. Heaps, Priority Queue ADT, Heapsort.