void permutehelper(int * array, int index, int length) { if(index == length) { int sortable = isStackSortable(array, length); if(sortable == TRUE) { TreeNode * root = Tree_build(array, length); Tree_printShape(root); Tree_destroy(root); return; } else {return;} } int pos; for(pos = index; pos < length; pos++) { swap(&array[pos], &array[index]); permutehelper(array, index + 1, length); swap(&array[pos], &array[index]); } }
void FM_destroy (FiniteMap fm) { if (fm->root) Tree_destroy(fm->root, fm->del); free(fm); }