Reasoning Distillation and Structural Alignment for Improved Code Generation