热门标签 | 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。

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

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

推荐阅读
  • MySQL InnoDB 存储引擎索引机制详解
    本文深入探讨了MySQL InnoDB存储引擎中的索引技术,包括索引的基本概念、数据结构与算法、B+树的特性及其在数据库中的应用,以及索引优化策略。 ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
  • 在Android应用开发过程中,开发者经常遇到诸如CPU使用率过高、内存泄漏等问题。本文将介绍几种常用的命令及其应用场景,帮助开发者有效定位并解决问题。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • 本文介绍了在Linux环境下如何有效返回命令行状态、上一级目录及快速查找头文件和函数定义的方法。包括处理长时间运行命令、编辑器退出技巧、目录导航以及文件搜索策略。 ... [详细]
  • 本篇文章详细探讨了微机原理实验中的指令系统,特别是第三章的内容。对于希望深入了解微机工作原理和技术实现的朋友来说,这是一篇不可多得的技术指南。文章不仅涵盖了基础概念,还深入讲解了指令格式、操作数类型以及各种寻址方式,旨在帮助读者更好地掌握微机指令系统的应用。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • QQ推出新功能:个性化QID身份卡
    您是否还记得曾经风靡一时的即时通讯工具QQ?近日,QQ悄然上线了一项新功能——QID身份卡。这项功能将如何改变用户的社交体验?本文为您详细解读。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • 在Qt框架中,信号与槽机制是一种独特的组件间通信方式。本文探讨了这一机制相较于传统的C风格回调函数所具有的优势,并分析了其潜在的不足之处。 ... [详细]
  • 如何高效解决Android应用ANR问题?
    本文介绍了ANR(应用程序无响应)的基本概念、常见原因及其解决方案,并提供了实用的工具和技巧帮助开发者快速定位和解决ANR问题,提高应用的用户体验。 ... [详细]
  • 高效的JavaScript异步资源加载解决方案
    本文探讨了如何通过异步加载技术处理网页中大型第三方插件的加载问题,避免将大文件打包进主JS文件中导致的加载时间过长,介绍了实现异步加载的具体方法及其优化。 ... [详细]
author-avatar
浅笑二度
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有