Graphs and Graph Algorithms