Graphs are mathematical structures and some algorithms are easier to be described or solved as graphs. However, the graphs are quite distant from conventional computing architectures and therefore graph-based algorithms are harder to implement within conventional architecture. Large graphs are difficult to store in von Neumann architecture. Therefore, storage of graphs use many tricks described above, such as sparse array, hashing, etc.