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!?!

"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).
