一个DFS最简单的入门小程序
上次论坛里一个会员问的。
感觉这个程序作为DFS入门是很理想的,大家应该都能看懂。
感觉这个程序作为DFS入门是很理想的,大家应该都能看懂。
贴出来和大家分享:
代码
#include<iostream>
using namespace std;
int a[100] = {0};
int n;
int count=0;
void dfs(int k)
{
if(k >= n)
{
for(int i = 0;i < n;i++)
{
cout<<a[i]<<" ";
}
count++;
cout<<endl;
}
else
{
for(int i = 1;i <= n;i++)
{
a[k] = i;
dfs(k + 1);
}
}
}
int main()
{
while(cin>>n)
{
count=0;
int k = 0;
dfs(k);
cout<<count<<endl;
}
}
using namespace std;
int a[100] = {0};
int n;
int count=0;
void dfs(int k)
{
if(k >= n)
{
for(int i = 0;i < n;i++)
{
cout<<a[i]<<" ";
}
count++;
cout<<endl;
}
else
{
for(int i = 1;i <= n;i++)
{
a[k] = i;
dfs(k + 1);
}
}
}
int main()
{
while(cin>>n)
{
count=0;
int k = 0;
dfs(k);
cout<<count<<endl;
}
}