Posted on 2009-08-28 09:15
reiks 阅读(184)
评论(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);
}