A tree is, by definition, one parent with many children, each of which can have many children. What you desire is a generalised network, not a tree.
There are many DBMS products which present a graph (i.e. generalised network) data model. Both items and the relationships between items are first-class objects. Typically both can have arbitrary labels and attributes. These products are also optimised for relationship-based processing such as friends-of-friends, shortest path or cluster detection. If navigating the network is more important for your use case than OLTP point updates or calculating bulk aggregates then one of these DBMS may suit.
Is there a way of having a direction to this network though ? It's for storing school programme data, and the prerequisite knowledge for a certain course for example. (And that course can have many prerequisites and can be prerequisite to others, but there is a direction to the structure.)
All graph DBMSs implemented directed graphs. This means there is a "from" and a "to" in each relationship. This is analogous to, but different from, the "parent" and "child" in a relational database foreign key. A relationship's direction is set when the relationship is written to the DB. Relationships can be read in either direction, however, much like a SQL query can follow a foreign key to find the children given the parent, or the parent given a child.
A hypothetical graph for your school prerequisites might look like:
Basic math <-- requires -- Advanced math <--- requires ---¬
└------- requires -----------¬ Medicine
Basic chemistry <-- requires -- Advanced chemistry <-- requires
Medicine has two prerequisites - advanced math & advanced chemistry. Basic math is a prerequisite for two other subjects.