https://rajputlakhveer.medium.com/mastering-graphs-a-comprehensive-guide-to-graph-data-structures-9feded63855b