Esempio n. 1
0
void permuteHelper ( int * array , int len , int ind )
 {

   //   TreeNode * root = NULL ;
   int check ;
   if ( ind == len )
   {
     check = isStackSortable( array, len) ;
     if(check == 1)
       {
	 TreeNode * root = Tree_build(array, len) ;
	 Tree_printShape(root) ;
	 // printPermutation ( array , len );
	 Tree_destroy(root) ;
       }
   }
 int pos ;
 for ( pos = ind ; pos < len ; pos ++)
   {
   swap (& array [ pos ] , & array [ ind ]); 
   permuteHelper ( array , len , ind + 1);
   swap (& array [ pos ] , & array [ ind ]); 
   }



 }
Esempio n. 2
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]);
    }

}