【树形递归】

C# 树形递归,部门树状图

如果数据库中存在的department部门表,其中ID为主键,PID为父类,Name为部门名称,设计如下:
    public class department
    {
        public int ID { get; set; }
        public int PID { get; set; }
        public string Name { get; set; }
    }
设计递归算法:
        private string departmentRecursion(int pid, List obj)
        {
            string a = "
"; for (int i = 0; i < obj.Count; i++) { if (obj[i].PID == pid) { a += "
" + obj[i].Name + "
\n
" + departmentRecursion(obj[i].ID, obj) + "
"; } } a += "
"; return a; }
在MVC中新建立Home控制器:加入下面代码:DeparTmentList查询出部门表信息到List中,这里准备了测试数据,使用递归返回树状html字符串:
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult DeparTmentList()
        {
            List ds = new List()
            {
                new department(){ ID=6, Name="前端开发组1", PID=4},
                new department(){ ID=1, Name="XX公司", PID=0},
                new department(){ ID=2, Name="开发部", PID=1},
                new department(){ ID=3, Name=".NET开发部门", PID=2},
                new department(){ ID=5, Name=".NET开发组1", PID=3},
                new department(){ ID=4, Name="前端开发部门", PID=2},
                new department(){ ID=6, Name=".NET开发组2", PID=3},
            };
            return Content(departmentRecursion(0, ds));
        }
添加Home视图:
@{
    Layout = null;
}





    
    Index


    @Html.Action("DeparTmentList", "Home");		


调试运行如下:
【树形递归】_第1张图片

使用JS树形递归,部门树状图:

    
【树形递归】_第2张图片


你可能感兴趣的:([02],MVC随笔,[11],算法结构)