已知如下一个递归程序,该程序的目的是输出给定字符的所有排列,请分析该程序的递归过程,然后将其用人工栈进行模拟,也就是将该递归程序转换成非递归程序:
public static void main(String[] args )
{
char myString[]={'a','b','c','d'};
permutation(myString,0,3);
}
public static void permutation(char[] list,int low,int high){
if(low==high){
System.out.println(list);
return ;
}
else{
for(int i=low;i<=high;i++)
{
char temp=list[low];
list[low]=list[i];
list[i]=temp;
permutation(list,low+1,high);
temp=list[low];
list[low]=list[i];
list[i]=temp;
}
}
}
|
|