- 论坛徽章:
- 5
|
本帖最后由 __BlueGuy__ 于 2012-09-22 13:55 编辑
cjaizss 发表于 2012-09-22 13:46
递归的长什么样啊?请教
好吧
- #include <stdio.h>
- #define NUM 4
- #define MAX_DEPTH 2
- int mark[NUM+1] = {0};
- int printList[NUM+1] = {0};
- void dfs(int depth);
- int main(void)
- {
- dfs(1);
- return 0;
- }
- void dfs(int depth)
- {
- int i;
- for (i = 1; i <= NUM; i++)
- {
- if (!mark[i])
- {
- mark[i] = 1;
- printList[depth] = i;
- if (depth < MAX_DEPTH)
- {
- dfs(depth+1);
- }
- else
- {
- int j;
- for (j = 1; j <= MAX_DEPTH; j++)
- {
- printf("%d ", printList[j]);
- }
- printf("\n");
- }
- mark[i] = 0;
- }
- }
- }
复制代码 |
|