关于图的一个小递归

来源:互联网 发布:cba周琦数据统计 编辑:程序博客网 时间:2024/05/21 08:48
下图是一个有向图,输入,打印的所有路径

仔细研究这个图的特点,发现以下规律:对任何结点i,都可以走到i+1和i+2,当然如果它们不超过9的话。由于要打印路径,因此需要保存查找过程中的部分路径信息。

但是这个图是不需要用图的啥啥遍历来解决的,不能想的太复杂。下面是个递归算法,网上还有“正向”的算法,,可以搜一下


#include "stdafx.h"#include <iostream>using namespace std;int arr[1024]={0};void path( int n, size_t i){if ( n < 0 ) return;   //防止非法输入arr[i] = n;if ( n == 0 ){for ( int j=i; j >= 0; --j )   //逆序输出数组cout<<arr[j];cout<<endl;return;}if ( n == 1 ){arr[++i] = 0;for ( int j=i; j >= 0; --j )   //如上,逆序输出数组cout<<arr[j];cout<<endl;return;}++i;path( n - 2,i);path( n - 1,i);}int main(){  path(4,0);  return 0;}