热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

STL有什么合适的结构让我写一个二叉树的类呀?

STL中没有二叉树结构,听说是因为实现方法太多。那用STL,有什么合适的结构可以让我实现一个二叉树的类呀?还是,干脆我不用STL,自己编一个二叉树的类算了?如果用STL写树并不见得好的
STL中没有二叉树结构,听说是因为实现方法太多。

那用STL,有什么合适的结构可以让我实现一个二叉树的类呀?

还是,干脆我不用STL,自己编一个二叉树的类算了?如果用STL写树并不见得好的话。

8 个解决方案

#1


恩,自己编,呵呵

class CNode
{
public:
  ...
  CNode * m_pLeft ;
  CNode * m_pRight ;
} ;

#2


谢谢,还有别的意见吗?

#3


在树型结构中,很多算法用递归写是很简单的
但,问题是,递归的性能(CPU要push,pop) 和 递归次数限制(stack overflow)
所以还是要考虑一下跌代的等效算法,参考些数据结构的书吧

#4


OK,这个我知道。我的应用就是需要非常高速的算法,我是不用递归的。

现在的问题是我前面的数据结构都是用STL构建的,挺方便。现在这个树的结构是不是仍用STL构建好呢?还是不用STL?

用STL怎么构建树呀?

#5


请问什么样的应用才会用到二叉树?

#6


游戏中的博弈树。下棋使的。

#7


递归慢吗?只是调用函数的开销而已,相对复杂的算法那是微不足道的。

#8


为了做出比较厉害的人工智能,我已经费了不少功夫(思考)。我无法忍受递归这样的开销影响计算的速度而减少搜索的数量——如果有避免的办法的话。

我看人工智能的书中搜索算法(深度优先等)都是非递归的,所以也想用非递归实现。当然,我也初学,以前没有写过类似的数据结构,不知道非递归实现是不是很复杂。先写一写试试,如果实在困难,后面再用递归的实现不迟。感谢rovoboy。

在非常费时的计算中,我只见过汉诺塔,速度慢的可怕。我本能的就认为如果改成非递归的一定会快很多,而且对递归很排斥——毕竟我很需要速度。

你的意思是说,如果本身的算法是很复杂的,那么递归的开销就足够忽略不计?不过毕竟游戏中的搜索可能要数万个点,真的影响会非常小吗?谢谢。

推荐阅读
  • 在程序运行过程中,各种编程语言都会动态创建对象,并为其分配内存。当这些对象不再使用时,释放其所占内存变得至关重要,以确保资源的有效利用。本文深入探讨了垃圾回收(GC)的工作原理,包括如何识别、何时及如何回收不再使用的对象。 ... [详细]
  • 想搭建一个能够稳定支持每日500万页面浏览量(PV)的网站架构吗?了解500万PV的实际意义,以及如何计算服务器需要处理的并发请求量,是成功构建高效架构的关键。本文将从基础概念出发,深入探讨实现这一目标所需的技术细节和策略。 ... [详细]
  • ML学习笔记20210824分类算法模型选择与调优
    3.模型选择和调优3.1交叉验证定义目的为了让模型得精度更加可信3.2超参数搜索GridSearch对K值进行选择。k[1,2,3,4,5,6]循环遍历搜索。API参数1& ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • ▶书中第四章部分程序,包括在加上自己补充的代码,有边权有向图的邻接矩阵,FloydWarshall算法可能含负环的有边权有向图任意两点之间的最短路径●有边权有向图的邻接矩阵1 ... [详细]
  • 本文将指导您如何在Docker环境中高效地搜索、下载Redis镜像,并通过指定或不指定配置文件的方式启动Redis容器。同时,还将介绍如何使用redis-cli工具连接到您的Redis实例。 ... [详细]
  • 在互联网信息爆炸的时代,当用户需求模糊或难以通过精确查询表达时,推荐系统成为解决信息过载的有效手段。美团作为国内领先的O2O平台,通过深入分析用户行为,运用先进的机器学习技术优化推荐算法,提升用户体验。 ... [详细]
  • Vue 3.0 翻牌数字组件使用指南
    本文详细介绍了如何在 Vue 3.0 中使用翻牌数字组件,包括其基本设置和高级配置,旨在帮助开发者快速掌握并应用这一动态视觉效果。 ... [详细]
  • 本文深入探讨Java编程语言的关键特性,包括但不限于其简洁性、强大的面向对象能力、跨平台兼容性、安全机制、高效性能及多线程支持等方面。文章旨在为开发者提供全面理解Java特性的指导。 ... [详细]
  • 如何在Windows 10中关闭系统提示音
    本文将指导您如何在Windows 10操作系统中关闭各种系统提示音,以减少不必要的干扰。 ... [详细]
  • 本文探讨了实时操作系统中的两种主要调度策略——速率单调调度与最早期限优先调度,并深入分析了多处理器环境下的调度挑战及优先级反转问题的解决方案。 ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • Python基础教程:struct模块与格式化字符详解
    本文详细介绍了Python中struct模块的功能,以及如何利用格式化字符实现Python与C语言结构体之间的数据转换。文章通过具体实例讲解了struct模块的主要方法及其应用场景。 ... [详细]
  • Git支持通过自定义钩子来扩展其功能,这些钩子根据触发条件的不同,可以分为客户端和服务器端两种类型。客户端钩子通常与本地操作相关联,如提交代码或合并分支;而服务器端钩子则与远程仓库的交互有关。 ... [详细]
  • 深入探讨ASP.NET中的OAuth、JWT与OpenID Connect
    本文作为前文关于OAuth2.0和使用.NET实现OAuth身份验证的补充,详细阐述了OAuth与JWT及OpenID Connect之间的关系和差异,旨在提供更全面的理解。 ... [详细]
author-avatar
长风剑客2502852893
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有