CIS 350 Review
                           Fall 2000

Text: Horowitz  1.1-2.2,2.5-,6.1-6.4,
Abstract Data Types in C++
  attributes, operations, declarations, type checking,
  data structures, algorithms and simulation
Dynamic Data Structures
  attributes, implementation, operations, applications, stacks,
  queues, linked lists (singly linked, doubly linked, circular),
  header nodes, binary trees (threading, balancing, traversals),
  general trees, partially ordered trees (heaps), tries, B-trees,
  priority queues, directed graphs (shortest path, traversals),
  undirected graphs (minimum cost spanning trees, traversals,
Searching Algorithms
  sequential, binary, indexed, hash coding and collision
Sorting Algorithms
  insertion, selection, bubble, heap, quick, shell, radix, merge,
  bin, topological
Algorithm Analysis
  efficiency, big Oh notation, order arithmetic, worst case 
  comparisons and methods of improving performance, solving   
  recurrence relations

Algorithm Design
  divide-and-conquer, dynamic programming, greedy algorithms

  Expect to write 2 or 3 procedures/functions, and to trace
  several (including internal representations of data

Object-oriented Programming
  As an alternative means of implementing ADT's.