
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
595
Chapter 11
CHAPTER 11
Data Structures and Algorithms
11.0 Introduction
In this chapter, you will look at certain data structures and algorithms that are not
available for you in the FCL through Version 2.0. Examples are provided for algo-
rithms like hash-code creation and string balancing. The FCL does not support every
data structure you might need, so this chapter provides solutions for priority and
double queues, binary and n-ary trees, sets, and a multimap, as well as many other
things.
11.1 Creating a Hash Code for a Data Type
Problem
You have created a class or structure that will be used as a key in a Hashtable or
Dictionary<T,U>. You need to overload the GetHashCode method in order to return a
good distribution of hash values (the Discussion section defines a good distribution
of hash values). You also need to choose the best hash-code algorithm to use in the
GetHashCode method of your object.
Solution
The following procedures implement hash-code algorithms and can be used to over-
ride the
GetHashCode method. Included in the discussion of each method are the pros
and cons of using it, as well as why you would want to use one instead of another.
In addition, it is desirable, for performance reasons, to use the return value of the
GetHashCode method to determine whether the data ...