当前位置: 首页 > news >正文

汽车网站页面设计wordpress 图片 视频

汽车网站页面设计,wordpress 图片 视频,小网站怎么赚钱,wordpress文章换行最近写代码碰到了一个bug&#xff0c;就是递归次数太多爆堆栈了&#xff0c;然后就写了一个递归工具来解决这个问题。 using System; using System.Collections.Generic;/// <summary> /// 递归工具 /// </summary> public static class RecursionTool {//递归方式…

最近写代码碰到了一个bug,就是递归次数太多爆堆栈了,然后就写了一个递归工具来解决这个问题。

using System;
using System.Collections.Generic;/// <summary>
/// 递归工具
/// </summary>
public static class RecursionTool
{//递归方式 1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/// <summary>/// 树节点接口/// </summary>public interface ITreeNode{/// <summary>/// 访问标记/// </summary>bool Visited { get; set; }/// <summary>/// 子节点/// </summary>List<ITreeNode> Children { get; set; }}/// <summary>/// 递归算法的非递归实现/// 以节点树的方式递归/// </summary>public static (bool result, object args) Recursive(IEnumerable<ITreeNode> rootNodes,Func<ITreeNode, (bool result, object args)> handleNode){var stack = new Stack<ITreeNode>();foreach (var item in rootNodes){item.Visited = false;stack.Push(item);}while (stack.Count > 0){var rootNode = stack.Peek();//没访问过,且有子节点时if (rootNode.Visited == false && rootNode.Children != null && rootNode.Children.Count > 0){rootNode.Visited = true;//把子节点全部入栈foreach (var item in rootNode.Children){item.Visited = false;stack.Push(item);}}//访问处理根节点else{rootNode = stack.Pop();rootNode.Visited = false;if (handleNode != null){var tuple = handleNode(rootNode);if (tuple.result){return tuple;}}}}return (false, null);}//递归方式 2 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/// <summary>/// 递归状态/// </summary>public enum ERecursiveState{Finish,Next,Skip,}/// <summary>/// 递归算法的非递归实现/// 根据回调里的逻辑递归/// </summary>public static (bool result, object args) Recursive<TNode>(IEnumerable<TNode> rootNodes,Func<TNode, (ERecursiveState state, bool result, object args, IEnumerable<TNode> nexts)> handleNode){var stack = new Stack<TNode>();foreach (var item in rootNodes){stack.Push(item);}while (stack.Count > 0){var rootNode = stack.Pop();if (handleNode != null){var tuple = handleNode(rootNode);switch (tuple.state){case ERecursiveState.Finish:return (tuple.result, tuple.args);case ERecursiveState.Next:{if (tuple.nexts != null){foreach (var item in tuple.nexts){stack.Push(item);}}}break;}}}return (false, null);}}

也很久没写文章了,顺手记录一下。

http://www.yayakq.cn/news/460144/

相关文章:

  • 国外做内容网站深圳平湖做网站
  • 安康哪里做网站南沙网站建设wwiw
  • 网站更换域名 seo网站首页图片代码
  • 如何看网站排名安庆市住房和建设厅网站首页
  • 织梦网站密码忘记了正规网站建设推荐
  • 育儿哪个网站做的好wordpress怎么加插件下载
  • 电子商务网站建设干货平面设计接单软件
  • 北京网站建设公司案例哪些网站可以做免费广告推广
  • 网站搜索优化公司禅城专业网站建设公司
  • 俄语购物网站建设提供网站建设的公司
  • 淘宝客不建立网站怎么做行业协会网站建设方案
  • 天津外贸营销型网站建设公司运营一般一个月多少钱
  • 计算机 网站开发 文章小程序企业网站开发
  • 白城网站建设公司最近广告公司
  • 云南建设注册考试中心网站app京东商城网页设计分析
  • 时间轴网站设计小说网站的里面的搜索是怎么做的
  • 企业网站建立的目的东莞龙岗网站建设
  • 山河建设有限公司网站网站系统平台的安全策略是什么
  • 青岛建网站哪个好门户资源分享网站模板
  • 无锡做网站专业的公司中国网站虚拟主机 排名
  • 专业做医药招聘的网站国外设计网站pinterest设计网址
  • 公司网站建设上海找谁扬州百度seo公司
  • 成都电子商城网站开发如何注册域名及网站
  • 公司网站百度推广做网站的能赚多少钱
  • 广州手机网站定制信息做微信用什么网站
  • 自己随便玩玩的网站怎么建设网站导航结构的优化
  • 做汽车团购的网站西安大雁塔在哪个区
  • 营销型网站建设的指导原则不包括做网站多少宽带够
  • 旅行社网站建设规划郑州网站建设代理
  • 在网站上做的图表怎么放到PPT里面网站建设国外