A tree edge is an edge in a DFS-tree.
A back edge connects a vertex to an ancestor in a DFS-tree. Note that a self-loop is a back edge.
A cross edge is any other edge in graph G. It connects vertices in two different DFS-tree or two vertices in the same DFS-tree neither of which is the ancestor of the other.
Tree edges $\left \{ (a,b),(b,e),(e,c) \right \}$ Cross edges $\left \{ (d,a),(d,b) \right \}$ Back edges $\left \{ (c,b) \right \}$.