(一)将数据库存储结构转化为内存树型结构算法

树节点定义public class TNode
{public string id { get; set; }public string pid { get; set; }public string name { get; set; }public string flag { get; set; }
}

树定义public class Tree
{TNode node;public List<Tree> Children { get; set; }
}

算法定义public static Tree GetTreeList(List<TNode> data, string pid)
{Tree root = new Tree();List<TNode> item = data.FindAll(t => t.pid == pid); //查找父节点下的所有子节点if (item.Count == 0){TNode temp = data.Find(t => t.id == pid);if (temp == null){root = null;//空树}else{root.node = temp;}}if (item.Count > 0){Tree p = new Tree();//当前节点父节点指针foreach (TNode entity in item){TNode pnode = data.Find(x => x.id == node.node.pid);if (pnode != null){p.node = pnode;p.Children.Add(node);root = p;}else{root = node;}}}return root;
}

转载于:https://www.cnblogs.com/lihuali/p/7201956.html

数据结构1-树及常用算法相关推荐

  1. 静态树表查找算法及C语言实现,数据结构 静态树表查找算法

    友情提示:此篇文章大约需要阅读 6分钟55秒,不足之处请多指教,感谢您的阅读. 算法思想 在使用查找表中有n个关键字,表中的每个关键字被查找的概率都是1/n.在等概率的情况下,使用折半查找算法最优. ...

  2. 数据结构之树和二叉树算法实现(C语言)

    待我学有所成,结发与蕊可好.@夏瑾墨 开发环境为Dev-C++ 5.11 编译器:MinGW GCC 6.1.0 64-bit 一.算法程序组建目录结构如下: 第一部分:头文件 1. c1.h 2. ...

  3. c语言必背数据结构_C语言实现常用数据结构:简要一览(第1篇

    线性表 最简单的一种数据结构,具有相同类型的数据元素组成的序列.顺序表.链表是其两种简单实现. 备注:数组也可以算一种简单的线性表. 链表可以分为:带头结点的简单链表 不带头结点的简单链表静态链表 循 ...

  4. python常用代码_Python常用算法学习(4) 数据结构(原理+代码)-最全总结

    数据结构简介 1,数据结构 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成.简单来说,数据结构就是设计数据以何种方式组织并存贮在计算机中.比如:列表,集合与字 ...

  5. 【动画版】数据结构-B树【宁哥算法课堂】

    [动画版]数据结构-B树[宁哥算法课堂] 人物对白: 李宁老师:小丽,很久没见了,最近在忙什么? 小丽:最近学院的老师布置了一个大作业,让实现一个类似Oracle的关系数据库原型. 李宁老师:Orac ...

  6. 数据结构与算法+JVM调优和GC常用算法+数据库高级+复杂sql手写

    数据结构 双向链表 二叉排序树 红黑树 散列表 双向链表: 什么是双向链表 双向链表是一种数据结构,是由若干个节点构成,每个节点由三部分构成, 分别是前驱节点,元素,后继节点,且双向链表中的节点在内存 ...

  7. python 树状数组_【算法日积月累】19-高级数据结构:树状数组

    树状数组能解决的问题 树状数组,也称作"二叉索引树"(Binary Indexed Tree)或 Fenwick 树. 它可以高效地实现如下两个操作: 1.数组前缀和的查询: 2. ...

  8. 【数据结构与算法】常用算法

    五大常用算法 分治 动态规划 最优子结构 边界 状态转移函数 爬楼梯问题: 4. 最优子结构 F(10)的最优子结构为F(9)和F(8) 5. 边界 F(1) = 1 F(2) = 2 6. 状态转移 ...

  9. 赫夫曼树编码的算法及应用习题--数据结构

    赫夫曼树编码的算法及应用习题 1.构造赫夫曼树的方法 1.根据给定的n个权值{w1,w2,---wn},构成n棵二叉树的集合F={T1,T2...,Tn},其中每棵二叉树中只有一个带权为Wi的根结点, ...

最新文章

  1. 二:SpringAOP
  2. OpenCV Aruco模块常见问题解答
  3. Python列表和字典的方法总结
  4. Centos7.x Hadoop 3.x HDFS 写入文件
  5. 计算机应用头部案例提交,基于头部位置的应用程序放置的制作方法
  6. sql SELECT时的with(nolock)选项说明
  7. 密码输入页面的实现-模仿支付宝
  8. 如何将Android手机用作调制解调器; 无需生根,Redux
  9. 层次分析法(AHP)——算数平均值法、几何平均值法、特征值法(Python实现,超详细注释)
  10. C++课后作业 10.教材习题7_6:哺乳动物类Mammal派生出狗类Dog
  11. 客户端到服务器端的通信过程及 原理图很好
  12. java开发工程师转正述职报告
  13. 【集大成篇】数据类型( C、C++、Java )对比
  14. Scratch软件编程等级考试二级——20210320
  15. mr编程实现手机流量统计和读取MySQL数据
  16. 为什么outlook不能改成HTML格式,如何解决Outlook 2016中的HTML格式问题
  17. Linux test
  18. opencv_python清华镜像下载地址
  19. 点对点网络与广播式网络的区别
  20. NI-VISA写入与读写错误1073807339

热门文章

  1. 阿里云深圳数据中心正式开放
  2. .net中前台javascript与后台c#函数相互调用
  3. 今天拿到了同事给我买的《java与模式》
  4. vue从入门到精通之进阶篇(一)vue-router基础
  5. Maven--资源文件resource的问题
  6. SqlServer图形数据库初体验
  7. Ubuntu14.04下Mongodb数据库可视化工具安装部署步骤(图文详解)(博主推荐)
  8. jquery $.trim()方法使用介绍
  9. 《Ext详解与实践》节选:自定义单元格的显示格式
  10. DM6446开发攻略:V4L2视频驱动和应用分析