Does the mention of graph theory induce a yawn? Do you think graphs are just for academics or highly specialized application domains? Think again. Graphs are easy enough to understand and can be applied to solve a multitude of programming problems. To find out more, read this article by Stephen Morris.

Like this article? We recommend

Graphs: A Partially Uncharted Territory

One problem with trying to gain an understanding of graphs is the
mathematical foundation apparently required. While a really deep knowledge of
graph theory does require long study, you can dip into this area. To do
this, the amount of background needed is not so large.

Armed with some simple concepts, any programmer can start to use
graph-processing algorithms.

There’s also a lot of graph-related material on the Web, and
there’s a related project on Source Forge as well (see reference [2]).
It’s an area that you can get a feel for without a large investment.

In this article, I provide an introduction to the area of graphs with some
simple Java code. However, it’s important not to think that graphs are
very simple! Although a full understanding of the algorithmic complexities of
graphs could take years to acquire, for most of us a detailed understanding
isn’t necessary.

The nice thing about graphs is the way they can be used to model what are
essentially infinitely data elements. A network can grow without bounds, so
it’s difficult to model this on machines with finite resources.

Graph data structures provide a means of modelling such vast entities as
national maps, large telecommunications networks, and so on. Once such entities
have been modelled, it’s then possible to analyze them by using algorithms
such as least cost routing.

It might come as a surprise to learn that some problems in graph theory
remain unsolved to this day. (For more on this, reference [1] is an excellent
source.)

So graph theory can be seen as a very fertile area of investigation, and much
academic research is aimed at solving key problems.

Let’s now get some basics out of the way—and then we’ll
look at some applications of graph processing algorithms.

Graph theory is a vast area of computing with an impressive array of
specialist domains and algorithms. Applications of graph theory include
scheduling, maps, networks, program structure, and so on.