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

怎么注册网站名称廊坊关键词优化报价

怎么注册网站名称,廊坊关键词优化报价,广西桂林公司,中央农村工作会议内容2022最近写代码碰到了一个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.mmbaike.com/news/95780.html

相关文章:

  • 网站建设 cmsapp开发工具哪个好
  • WordPress证书https百度seo规则
  • 深圳网站建设方案服务公司网络营销策略有哪五种
  • 怎么把自己做的网站发布衡阳seo优化首选
  • 着陆页制作网站广点通投放平台登录
  • 广州网站开发定制公司海南网站建设
  • 建设商城网站制作网站软件免费下载
  • 婚纱手机网站制作搜索引擎排名大全
  • 鄂尔多斯网站建设综合查询
  • dede 网站地图怎么做网络营销有几种方式
  • 网站自助平台免费申请网站com域名
  • 莱芜东风街吧seo专员招聘
  • 广西住房和城乡建设厅官网培训seo一键优化
  • 网站seo策略恶意点击软件哪几种
  • 做旅行义工网站蚁百度企业认证怎么认证
  • 网站 收录 做301百度登录页面
  • 互动平台抽手机windows优化软件哪个好
  • 订阅号做影视网站搜索引擎优化答案
  • 比较大的做网站的公司建站系统哪个好
  • 福州网站大全郑州seo阿伟
  • 网站修改dnsseo还有哪些方面的优化
  • 网站每天更新的内容是内链吗软文营销经典案例200字
  • 微网站免费注册嘉兴seo外包平台
  • 信息中心网站建设百度推广开户联系方式
  • 厦门制作网站企业网站域名怎么查询
  • 重庆建设工程信息查询百度seo优化按年收费
  • 江西企业登记网络服务平台百度seo排名规则
  • 想找个人做网站玄幻小说百度风云榜
  • phpcms做视频网站网站建设制作专业
  • 山东省建设厅举报网站免费seo免费培训