/* * Code example for CP264 Data Structures II * Permutation * HBF */ #include #include #include int count=0; int numberperline = 10; void allstr_recursion(char *symbols, char *prefix, int symbolcount, int len, int n); void allstr_iteration(char symbols[], int symbolcount, int len); void swap(char *x, char *y); void permutation_recursion(char *a, int l, int r); void permutation_iteration(char s[], int n); void permutation_iteration1(char* input, int n); void main(int argc, char *args[]) { int len = 2; if (argc >= 2) len = atoi(args[1]); char symbols[] = "ABC"; //char symbols[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; int symbolcount = sizeof(symbols)-1; char prefix[len]; printf("====fixed length string enumeration by recursion====\n"); count = 0; allstr_recursion(symbols, prefix, symbolcount, len, len); printf("\ncounter==%d\n", count); printf("\n====fixed length string enumeration by iteration====\n"); allstr_iteration(symbols, symbolcount, len); printf("\n====permutation by recursion====\n"); char str[] = "ABCD"; int n = strlen(str); count = 0; permutation_recursion(str, 0, n-1); printf("\ncounter==%d\n", count); printf("\n====permutation by iteration====\n"); permutation_iteration(str, n); printf("\n====permutation by iteration 2====\n"); permutation_iteration1(str, n); } void allstr_recursion(char *symbols, char *prefix, int symbolcount, int len, int n) { int i; if (n == 0) { count++; for (i=0;i=0; i--) { if (s[i]=0; i--) { if (p[i]