【20090324-01】递归算法

it2022-05-05  162

Code  1递归 (转) 2  31. 4//1、1、2、3、5、8、13、21、34 求第30位数是多少, 用递归算法实现 5 6//解剖递归算法 7 8//猛一看这一串数据还真看不出来个啥,但是只要你认真查找,就能看出规律。 910//从上面可以看出前两个数相加得到第三个数。1112public static int SuanFa (int i)13        {14             if(i>0)15              {16                  if (1 >= i || i <= 2)1718                      return 1;1920                   if(i>2)2122                      return SuanFa(i-1+ SuanFa(i-2);2324              }25              else2627                 return 0;2829        }3031322.C#遍历指定目录的递归(完美改进版+完整程序源码) 33昨天写了一下遍历目录树的思路和核心代码,今天将其实践化了一下,做了个实际的例子,遍历指定目录下的所有文件和文件夹,并将其按层次归类显示,对文件夹有标志提示,将文件夹与文件区分了出来。3435下面是改进版的核心方法代码:3637public ArrayList al = new ArrayList();//定义存储文件和文件夹名的数组38 2    public int aaa = 0;//定义标志位参数,递归时判断该参数,若不为0则非第一次递归39 3    public void GetAllDirList(string strBaseDir)40 4    {41 5        DirectoryInfo di = new DirectoryInfo(strBaseDir);42 6        DirectoryInfo[] diA = di.GetDirectories();43 7        if(aaa==0)44 8        {45 9        FileInfo[] fis2 = di.GetFiles();   //有关目录下的文件   4610        for (int i2 = 0; i2 < fis2.Length; i2++)4711        {4812            al.Add(fis2[i2].FullName);4913            //fis2[i2].FullName是根目录中文件的绝对地址,把它记录在ArrayList中5014        }5115        }5216        for (int i = 0; i < diA.Length; i++)5317        {5418                aaa++;5519                al.Add(diA[i].FullName + "\t<目录>");5620                //diA[i].FullName是某个子目录的绝对地址,把它记录在ArrayList中5721                DirectoryInfo di1 = new DirectoryInfo(diA[i].FullName);5822                DirectoryInfo[] diA1 = di1.GetDirectories();5923                FileInfo[] fis1 = di1.GetFiles();   //有关目录下的文件   6024                    for (int ii = 0; ii < fis1.Length;ii++ )6125                    {6226                        al.Add(fis1[ii].FullName);6327                        //fis1[ii].FullName是某个子目录中文件的绝对地址,把它记录在ArrayList中64286529                    }   6630                GetAllDirList(diA[i].FullName);6731                //注意:递归了。逻辑思维正常的人应该能反应过来6832        }6933                7034    }7172

具体原理每行关键核心代码后都有注释,大家应该可以看明白的

下面附上这个方法的使用范例(例子中有两个方法,第一个按钮只遍历指定目录下一级层次;第二个按钮是调用上述方法,遍历了指定目录下的所有层次文件夹和文件)源代码,点击下载

转载于:https://www.cnblogs.com/willwayer/archive/2009/03/24/1420215.html


最新回复(0)