Data Structures & Algorithms
Next:
Contents
Contents
junk
Motivation: 4 Reasons to Learn about Algorithms
Overview of Course
Brief Revision of Pointers and Dynamic Data
Introduction
Pointers
Pointers and Arrays
Copying Pointer Variables
Pointers, Functions and Call by Reference
Arrays and Functions
Dynamic Data
Problems and Pitfalls
Object Oriented Programming
Introduction
Motivation: Programming Paradigms
Object Oriented Programming and ADTs
Key Concepts and Terminology
Object Oriented Programming in C++: Basics
Further Reading
Further Important C++ OOP Concepts..
Derived classes:
Inheritance and Accessibility:
Constructors:
Destructors
Inline functions:
Objects, Pointers and Virtual Functions
Virtual functions
Exploiting Inheritance when Defining ADTs
A Named Stack
Constructors, Destructors and Dynamic Data
Constructors
Destructors
Copy Constructors
Queues and Stacks derived from Lists
Programming Style
Some final points
Object Oriented Design
Methodology
Some Examples
A Drawing Tool
File and Printing Systems
Window and User Interface Systems
Object Browsers
Conclusion
Advantages and Disadvantages of OOP
Summary
Graph Algorithms
Introduction
Motivation
Terminology and Definitions
A Graph ADT
Implementing a Graph ADT
Adjacency Matrix
Edge Lists
Which to use?
Graph Search Algorithms
Breadth first and depth first search
Tree search
Graph search
Returning the path
Example application
Weighted Graphs and Shortest Path Algorithms
Topological Sort
Motivation
The Algorithm
Graphs ADTs and OOP
Summary: Graph Algorithms
String Processing Algorithms
Introduction
A String ADT
String Searching
Motivation
A Naive Algorithm
The Knuth-Morris-Pratt Algorithm
The Boyer-Moore Algorithm
Tradeoffs and Issues
Conclusion
Exercise
Further Reading
Pattern Matching
Motivation
Representing Patterns
A Simple Pattern Matcher
Further Reading
Parsing
Motivation
Context Free Grammars
Simple Parsing Methods
A Top-Down Parser
A Bottom-Up Parser
Further Reading
File Compression
Motivation
Run-Length Encoding
Variable-Length Encoding
Substitutional Compressors
JPEG and MPEG
Summary
Further Reading
Cryptography
Motivation
A Basic Outline and Terminology
Simple Symmetric Methods
Asymmetric Systems: Public Key CyptoSystems
Summary
Exercises
Further Reading
Geometric Algorithms
Motivation
Representing Points, Lines and Polygons
Line Intersection
Inclusion in a Polygon
Finding the Convex Hull
Range Searching
General Methods for Developing Algorithms
Brute Strength Method
Divide and Conquer
Greedy Algorithms
Dynamic Programming
Genetic Algorithms
About this document ...
Alison Cawsey
Fri Aug 28 16:25:58 BST 1998