In function "expand_root" (alex.h), all pointers must be assigned to resolve issue #26 .
The case that the slope is equal to 0 must be carefully check to prevent emergence of infinite.
In function "significant_cost_deviation" and "catastrophic_cost" (alex_nodes.h), if the slope is equal to 0, keys of the data node are equal and should not be split. Otherwise, one key cannot be mapped to different data nodes.
In function "expand_root" (alex.h), the computation of expansion factor should be more precise for long long int, especially for "ceil" function, or expansion factor may be equal to 1.
Before applying this solution, the benchmark would stop when continuously inserting unsorted keys. After applying the fixes, it works well without any problems. Thank you!