Graph Theory - how to best start using it in OF

I am interested in how to best build a project that let’s me create nodes and edges. I learned graph theory is the right approach for this.
I have started copying some code in to my OF project from some very helpful websites.

But I am still trying to wrap my head around how to address a specific node?
How to draw each node and add other info to each node?
How do delete a node or an edge?

It seems most of the code I found uses linked lists with pointers to other “adjacent” lists.

 list<AdjListNode> *adjNode; 

But iterating through those seems strange because most of the time you access the adjacent list inside each adjNode element.

adjNode.size() returns 2 and not what I thought would be set via setup().

Anyway. Here is what I have so far. It works and can find all paths between two nodes, can find the shortest path, can check if two nodes are reachable, find all bridges.

undirectedgraph