Posted on 2009-08-28 09:15
reiks 阅读(194)
评论(0) 编辑 收藏 引用 所属分类:
算法与数据结构
#include <stdio.h>
#include <assert.h>
#include <malloc.h>

void p(int n)


{
extern void _p(int n, int cur, int *a);
int *a;
a = (int *) malloc(n * sizeof(int));
assert(a != NULL);
_p(n, 0, a);
free(a);
}

void _p(int n, int cur, int *a)


{
int i,j;
if (cur == n)

{
for (j=0; j<cur; j++)

{
printf("%d ", a[j]);
}
printf("\n");
return;
}
for (i=1; i<=n; i++)

{
for (j=0; j<cur; j++)

{
if (a[j] == i)

{
break;
}
}
if (j>=cur)

{
a[cur] = i;
_p(n, cur+1, a);
}
}
}

int main()


{
p(3);
}