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语言递归示例,不是常见的汉诺塔,这个更容易说明递归的使用
递归算法示例 讲解递归算法示例 讲解 Java
任何一个循环的代码都可以用递归改写,实现相同的功能;反之亦然。在不失去其普遍性的前提下,可以把循环和递归分别用下列伪代码概括。 伪代码格式说明:循环采用while形式;变量不加定义;赋值用:=;条件表达式和...
VB 2005 汉诺塔递归程序示例 需要交流或有疑难,欢迎联系我。 QQ 157864607,电邮 Sonoffreedom@gmail.com 语言: VB 2005,.NET 2.0
递归算法加载TreeView节点下的所有子节点,简单、易懂、高效
递归C语言中的所有递归类型和递归示例。
递归删除一个节点以及该节点下的全部节点示例_.docx
这个实例是用WinForm制作以及ASP.NET分别的两个例子!是个学习递归的好例子! 希望能对大家有所帮助!!
主要介绍了Python基于递归和非递归算法求两个数最大公约数、最小公倍数,涉及Python递归算法、流程循环控制进行数值运算相关操作技巧,需要的朋友可以参考下
自己写的4个Java代码,内有详细注释,适合想学Java的朋友参考。 insertion_sort.java --插入排序 Divide.java --分治排序 HanoiCompute.java --递归实现汉诺塔 FileCtrl.java --递归实现显示目录下的...
recursividad:递归示例
为G的每个非终结符号U构造一个递归过程,不妨命名为U。 U的产生式的右边指出这个过程的代码结构: (1)若是终结符号,则和向前看符号对照, 若匹配则向前进一个符号;否则出错。 (2)若是非终结符号,则调用与此非终结...
DEMO采用数据库和ASP.NET网页开发。 具体示例请下载后继续了解。谢谢。
java中使用递归方法计算阶乘的代码示例
使用环境:需要先安装PyCharm(请自己百度下载安装),以及然后官网上下载Python 2.7版本,以及Python 3.7版本后,安装在自己的电脑上。 使用步骤: ...目的:帮助理解递归函数在Python中的具体使用。
本程序功能: 1、演示了c#连接SQL2005数据的类。...2、演示了递归BOM表的无限分级方法 3、TreeView控件的使用 本程序在VS2008+SQL SERVER2005下运行通过。如果有疑问,下载评论中讨论。谢谢您的下载.
请参考数据库显示,看数据库内内容.这里仅仅给出了使用数据库中的数据创建树的示例,至于向数据库中增加数据大家可以摸索尝试,这里就不再给出。
阶乘(用递归实现)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
c语言版本二叉树基本操作示例(先序递归非递归)共10页.pdf.zip