`
aijuans8
  • 浏览: 186094 次
社区版块
存档分类
最新评论

一个关于递归的示例

    博客分类:
  • java
阅读更多

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace SortApplication
{
    public class getList
    {
        public int id;
        public int parentId;
        public string name;
        public getList(int id, int parentId, string name)
        {
            this.id = id;
            this.parentId = parentId;
            this.name = name;
        }
    }
    class Program
    {
        private static IList<getList> GetList(getList[] myList, int pid)
        {
            int count = myList.Length;
            IList<getList> al = new List<getList>();
                for (int i = 0; i < count; i++)
                {
                    if (myList[i].parentId == pid)
                    {
                        // Console.WriteLine(”上面测试 : ” + pid);
                        al.Add(myList[i]);
                    }
                }
            return al;
        }
        private static void SortList(getList[] myList, IList<getList> Al, ref getList[] listCopy)
        {
            if (listCopy[0] == null)
            {
                Al.Add(myList[0]);
            }
            try
            {
                foreach (getList lis in Al)
                {
                    int i;
                    for (i = 0; i < listCopy.Length; i++)
                    {
                        if (listCopy[i] == null)
                        {
                            break;
                        }
                    }
                    // Console.WriteLine("///" + i + "//////");
                    listCopy[i] = (getList)lis;
                    // Console.WriteLine(f);
                    Al = GetList(myList, lis.id);
                    SortList(myList, Al, ref listCopy);
                   
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        static void Main(string[] args)
        {
            getList[] ourList = new getList[] {
                new getList(1, 0, "a"),
                new getList(2, 1, "b"),
                new getList(3, 1, "c"),
                new getList(4, 2, "d"),
                new getList(5, 4, "e"),
                new getList(7, 3, "aaa"),
                new getList(6, 5, "f")
            };
                   
            string BlankBase = new string(' ', 8);
            Console.WriteLine("排序以前的对象");
            for (int i = 0; i < ourList.Length; i++)
            {
                Console.WriteLine(ourList[i].id + BlankBase + ourList[i].parentId + BlankBase + ourList[i].name);
            }
            getList[] listCopy = new getList[ourList.Length];
            IList<getList> Alist = new List<getList>();
            SortList(ourList, Alist, ref listCopy);
            Console.WriteLine("\r\n\r\n排序以后的对象");
            for (int i = 0; i < listCopy.Length; i++)
            {
                try
                {
                    Console.WriteLine(listCopy[i].id + BlankBase + listCopy[i].parentId + BlankBase + listCopy[i].name);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
    }
}
 
分享到:
评论

相关推荐

    一个例题,递归示例,非常形像的示例

    在计算机科学中,递归是一种强大的编程...本例题提供的直观示例将有助于深化对递归的理解,对于初学者来说,这是一个很好的学习资源。通过实践和分析这样的例子,可以更好地掌握递归的精髓,从而在实际项目中灵活运用。

    C语言的递归示例,简单易懂

    现在,我们来看一个简单的C语言递归示例,这个例子不是常见的汉诺塔问题,而是计算阶乘: ```c #include // 阶乘函数,n! = n * (n-1) * (n-2) * ... * 1 int factorial(int n) { // 基本情况:0的阶乘为1 if ...

    C#递归算法经典示例

    以下是一个基本的C#递归函数,用于加载TreeView节点的子节点: ```csharp public void LoadTreeNodes(TreeNode node, TreeNodeCollection nodes) { // 基本情况:如果节点没有子节点,停止递归 if (node.Nodes....

    VB 2005 汉诺塔递归程序示例

    以下是一个简单的VB 2005代码示例,演示了如何使用递归来解决汉诺塔问题: ```vbnet Module Module1 Sub Main() MoveDisks(3, "A", "B", "C") End Sub ' 递归函数,n为盘子数量,from为起始柱子,to为目标柱子...

    Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例

    在示例中,非递归函数gcd_test_one通过for循环构建了一个列表来存储所有能够同时整除a和b的数,然后使用内置函数max来找出这个列表中的最大值,即为两数的最大公约数。 在实际应用中,选择使用递归还是非递归方法取...

    一些常见的递归示例: 计算阶乘 斐波那契数列 递归遍历树结构

    递归是编程中的一个强大概念,其中一个函数在其定义中调用自己。在 C 语言中,递归常用于解决那些可以被分解为更小的相同问题的任务。递归通常包括两个主要部分: 递归基准条件:这是递归停止的条件,用于防止无限...

    JavaScript的递归之递归与循环示例介绍

    任何一个循环的代码都可以用递归改写,实现相同的功能;反之亦然。在不失去其普遍性的前提下,可以把循环和递归分别用下列伪代码概括。 伪代码格式说明:循环采用while形式;变量不加定义;赋值用:=;条件表达式和...

    递归算法示例 讲解 Java

    在给定的代码片段中,`fun2`函数是用来计算阶乘的一个典型递归示例。阶乘是指一个正整数的所有小于等于它的正整数的乘积,通常表示为`n!`。例如,`5! = 5 * 4 * 3 * 2 * 1 = 120`。 ```java public static int fun2...

    奉献一个c#绝好的递归树实例

    在编程领域,递归是一种强大的工具,特别是在...递归是一个强大的工具,但需要谨慎使用。理解递归的工作原理和其在不同场景中的应用,将极大地提升你的编程技能。通过实践,你将能更熟练地在C#中运用递归解决实际问题。

    C#递归 C#递归 C#递归

    以下是一个简单的递归方法示例,用于计算阶乘: ```csharp int Factorial(int n) { if (n == 1) // 基本情况 return 1; else return n * Factorial(n - 1); // 递归步骤 } ``` ### 代码分析 #### BindTree() ...

    递归删除一个节点以及该节点下的全部节点示例_.docx

    递归在这里被用来删除一个部门及其所有子部门。下面将详细解释这段代码的工作原理和递归在其中的作用。 首先,`del` 函数接受一个参数 `$bumen_id`,这代表要删除的部门ID。函数的主要任务是删除指定ID的部门,并...

    ASP.NET递归生成树导航示例

    每当你有一个父节点和一个或多个子节点的关系时,递归就派上用场了。 在这个ASP.NET项目中,"SolutionTree"很可能是指解决方案(Solution)中的层次结构,可能是模拟了文件系统的目录结构或者是数据库中的分类结构...

    一个简单的C#WindowsForm程序,用递归求N!

    "是一个教学示例,旨在教授如何在C#环境下利用递归算法计算阶乘(N!)。 首先,让我们理解什么是阶乘。阶乘是数学中的一个概念,表示一个正整数n的所有小于等于n的正整数的乘积,通常表示为n!。例如,5! = 5 × 4 ...

    关于递归的误区

    关于递归的误区:深入解析递归的时间复杂度与优化策略 在计算机科学领域,递归是一种常见的算法设计技巧,其基本思想是将问题分解为更小的子问题,直至达到可以直接解决的基本情况,然后逐步返回求解原问题。递归因...

    一个简单的递归调用的实例

    下面是一个简化的示例代码: ```csharp using System.IO; public static void TraverseDirectory(string directoryPath) { // 获取当前目录下的所有文件 string[] files = Directory.GetFiles(directoryPath); ...

    递归方法示例

    本文档将通过一个C#中的简单递归示例来介绍递归方法的基本用法。 #### 二、递归方法的概念与原理 递归方法是指在一个方法中直接或间接地调用自身的方法。为了确保递归能够正确终止并避免无限循环的情况,递归方法...

    N选M的所有组合(递归与非递归实现)

    2. 定义一个递归函数,接收当前已选择的元素集合和剩余未选择元素的索引。 3. 如果已选择元素的数量等于M,将当前组合添加到结果集合。 4. 对于每个未选择的元素(从当前索引到N-1),将其添加到选择集合,并递归...

    一个递归调用的存储过程

    以下是一个简单的递归存储过程的概念示例: ```sql CREATE PROCEDURE RecursiveProcedure (@CurrentLevel INT = 1, @MaxLevel INT) AS BEGIN -- 假设我们有一个层次结构表HierarchicalData (ID, ParentID, Name) ...

    递归:所有类型的递归和递归示例

    快速排序算法就是一个经典的分治递归示例: ```c void quick_sort(int arr[], int left, int right) { if (left ) { int pivot = partition(arr, left, right); quick_sort(arr, left, pivot - 1); // 递归调用 ...

Global site tag (gtag.js) - Google Analytics