The algorithms for learning decision trees can produce decision trees of different depth. Explain what are the main algorithmic principles that allow the algorithms to produce shallow decision trees on one dataset, yet much deeper decision trees on another dataset. An answer referring to the key elements of the pseudocode of the algorithm is required.