As far as I can see, all you need to do is create a class that defines a node with members like node.location, node.connection_list and node.contents, and then define a set of function that modify the location, contents, and connections in response to your users actions or commands, and how the "node" is displayed.
The implementation of all of that should, I hope, be obvious. The STL templates make the node class definition quite easy to do, and the graphics tool kits (QT, etc.) make the graphics programming fairly easy.
The only hard part should be planning exactly what you want in your nodes and what you want your users to be able to accomplish with those nodes. One you've done that, the rest should be standard coding.
<edit>
After I posted the above, I looked at your second reference, which - after a little digging - led to
this site, where you can find open-source software for 2D interactive node manipulation. You could look at that code to see how they did it. Re-coding it in C++ would probably be fairly easy.
</edit>