Beyond "not having GC", what are those reasons? I'm new to Rust and curious...
Of course, if you're willing to give up some safety internally, you can also implement them the same was as you could in C or C++.
There are graph libraries, but these only help with structures that are graphs in the strict sense (all edges are created equal and not actually part of the structure) as opposed to structs with one or more fields that reference (and have shared ownership of) another node in the graph.