Difference between a tree and spanning tree?!

"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:

enter image description here

has the spanning tree

enter image description here

whereas the subgraph

enter image description here

is not a spanning tree (it's a tree, but it's not spanning). The subgraph

enter image description here

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.