In this book, we propose a function estimation procedure using adaptive free-knot splines (AFKS) and associated algorithm for implementation in nonparametric regression. Knot selection is extremely important for estimating a function with complicated structure by spline functions. The AFKS allows variable knot numbers and replacements of knots at any locations and multiple knots at the same location. This flexibility leads to an adaptive spline estimator that adapts to any function with inhomogeneous smoothness, including a sharp kink or discontinuity, which substantially improves the representation power of splines. A new knot selection scheme is proposed, by utilizing an adaptive model selection criterion (AMSC) and an Evolutionary Algorithm (EA). The AMSC guards against the selection error in searching through a large candidate knot space, while the EA enables us to search the global minima of AMSC. The performance of the AFKS is examined via simulations, which demonstrates its superiority over the existing spline methods and wavelet estimators. This book would be useful for researchers who analyze real and complex data structures.