Example #1
0
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]);
    }

}
Example #2
0
void
FM_destroy (FiniteMap fm)
{
  if (fm->root) Tree_destroy(fm->root, fm->del);
  free(fm);
}