In the previous chapter, Chapter 6, we learned how to design general graphs using void * data and showed how we could generalize the access methods needed to understand that data with a new class ACCESS_VOID. How general can our graphs be with this technique? In this chapter, we will show that they can be very general indeed.
The idea is that each node and edge can be very arbitrary in nature. Let's build an example a graph that is ostensibly quite simple; namely, 2 nodes and 1 edge, but each node will itself be a complicated graph.