#include <stdio.h> void perm(int al[], int size) { int p[1000]={0,}; // stack int i=0, k, n, x, y, z, temp; p[++i]=size; // cycle back size p[++i]=2; // cycle back p[++i]=0; // z p[++i]=0; // y p[++i]=size; // cycle size p[++i]=1; // first phase p[0]=i; // p[0] is TOP of stack p while(p[0]) { // while stack p is not empty k=p[p[0]--]; // phase 1 or phase 2 n=p[p[0]--]; /..