NP complete proof:
To prove that a problem is NP-complete, we must show that it is in NP and that it is NP-hard.
1. For the "k-degree constrained spanning tree" problem, given a spanning tree, we can easily check in polynomial time whether it covers all vertices in the graph (which makes it a spanning tree) and whether each vertex in the tree has a degree of no more than k. This verification process involves checking each vertex and its edges, which can be done in polynomial time relative to the size of the graph.
2. Selected Hamiltonian path problem to show the reduction from Hamiltonian path to k-degree constrained spanning tree. Hamiltonian path problem is a known NP - complete problem.
3. Reduction from Hamiltonian Path to k-Degree Constrained Spanning Tree
i.)Start with a graph G for the Hamiltonian Path problem.
ii.)Transform G into a new graph G' for the k-degree constrained spanning tree problem. We do this by adding a new vertex Vnew to G and connecting Vnew to every other vertex in G
iii)Set k = 2 for the spanning tree problem in G'.
The idea is that if there is a Spanning tree in G' with degree 2 constrained (including Vnew) then the spanning tree is the Hamiltonian path in graph G after removing Vnew.
So, Hamiltonian path problem is polynomial time reducible to k-degree constrained spanning tree.
We know that Hamiltonian path problem is NP complete problem so k-degree constrained spanning tree problem is atleast hard as Hamiltonian path problem.
So k-degree constrained spanning tree problem is NP - Complete.