I'm unable to understand the difference between a tree and a spanning tree. A tree is a graph that is connected and contains no circuits. A spanning tree of a graph G is a tree that contains every node of G. So what is the difference!?!
"Spanning" is the difference: a spanning subgraph is a subgraph which has the same vertex set as the original graph. A spanning tree is a tree (as per the definition in the question) that is spanning.
has the spanning tree
whereas the subgraph
is not a spanning tree (it's a tree, but it's not spanning). The subgraph
is also not a spanning tree (it's spanning, but it's not a tree).
A tree is just a type of graph (connected and no cycles).
You can only say that $G$ is a spanning graph of $H$: it's more of a relation between graphs, which states a few things at the same time: $G$ is a subgraph of $H$ (i.e. it has a subset of the vertices and a subset of the edges), $G$ is a tree when considered on its own (as above), and it is spanning (the set of vertices of $G$ actually equals the vertices of $H$). So it says three things, of which two are about the relation between them. Saying it is a tree is simpler and has less information.
The only difference is the word 'spanning', a kind of 'skeleton' which is just capable to hold the structure of the given graph $G$. Infact, there may be more than one such 'skeletons' in a given graph but a tree $T$ has the only one i.e. $T$ itself.
Spanning tree is a maximal tree subgraph or maximal tree of graph G (i.e. A tree T is said to be a spanning tree of a connected graph G if T is a subgraph of G and T contain all vertices of G.