Difference between a tree and spanning tree?! 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!?!
 A: "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.
For example:

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: 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.
A: 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.
A: 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. 
