How can i make nodes with multiple Parents and childs

I wonder how to make data structure that the nodes have multiple paretns and childs. imagining tech tree or research maps in games will be easy to understand. like, research map of the game "Factorio". i searched about linked list, and tree structures but i found there was problem; linked list can only have 1 parent and 1 child, and tree(in this case, general tree not binary) can only have 1 parents. i also searched Double/Multiple linked list, but that was kinda different with what i was thinking. at the end, i somehow reached to Graph, but i don't know is this a correct data structure(?) i was finding. as it has weight with path, and bidirectional.

how research tree looks like from r/Factorio. thus, i'm tring to re-create this in C# or C++. any tips are appriciated :^)