Oscillatory Differential Equations Structure-Preserving Algorithms