The way I see it, you have two options: Define the nodes to which each node is linked, seperate your data structure from it's presentation. The latter is a good design principle btw.

Define links
When you create a node, you can give it a Array with it's neighbors (after they've been created ofcourse). This works for any kind of graph, but if you're using a square grid, you'd be better off basing the neighbors by using x and y coordinates.

Seperate data from presentation
Like you show in your first picture, an isometric grid is still a 2D grid. So you can have a 2D array or whatnot to store your tiles in, but when you render them onscreen they're isometric. You just have to calculate what x and y positions the representations should have based on the coordinate of the grid cell it represents.

I get from the second picture, that you'd like a grid with jagged edges. This can still be achieved with a square grid, by using a null tiletype. Just as you define a grass,rock or sand tiletype, you can define a null tiletype, which in game terms means that there is nothing there. You can't step on it, it has no properties etc.