我正在寻找一些用于商业/自由软件项目,现代或旧的树结构的例子.我可以在维基百科上看到示例,但我正在寻找更具体的示例以及如何使用它们.例如,数据库中的主键是(从我读过的)存储在BST结构中或BST的变体(随意纠正我)
我的问题不仅限于二进制搜索树(BST),它可以包括任何变体,如红黑,AVL等.
如果这些例子有点通用,即与图形相关而不一定与树相关,这样可以吗?如果是,请继续阅读.
毋庸置疑,大多数XML/Markup解析器都使用树.例如,请参阅Apache Xerces.或者,Xalan XSLT解析器.谢谢mathewsdave26提醒我!
PDF是基于树的格式.它有一个root
节点后跟一个catalog
节点(这些节点通常是相同的),后跟一个pages
有几个子page
节点的节点.生产者/消费者经常使用平衡树实现来将文档存储在存储器中.
计算机象棋游戏构建了一个巨大的树(训练),他们在运行时使用启发式方法修剪以达到最佳移动.
Flare是一个用AS编写的可视化库.您可能想要查看数据对象的映射方式.特别是该flare.analytics
包大量使用图形结构,跨树等.
社交网络是CS研究的当前流行语.不言而喻,连接/关系使用图表非常自然地建模.通常,树木用于表示/识别更有趣的现象.你如何回答"Harry和Sally有没有共同朋友?"之类的问题?
一些非常成功的物理/游戏引擎构建树木以准确模拟人类运动.在这种情况下,树通常对应于一组动作; 上下文将确定采用哪条路径来呈现特定响应.
基于决策树的学习实际上构成了数据挖掘研究的一个强大领域.存在许多着名的方法,例如在树上起作用的装袋,增强和修改.这种工作通常用于生成预测模型.
生物信息学中的一个常见问题是搜索大型数据库以查找给定查询字符串的匹配项.尝试在那里很常见.
相当多的成功(股票)交易者在日常交易中使用决策树 - 选择交易,退出交易.通常这些都没有在计算机程序中编纂,而是写在笔记本背面的某处.
欺骗.看到这个和这个.
数据库索引B*树中的B代表Balanced,而不是Binary.树保持均匀的深度,以确保访问时间均匀.
您的文件系统是树结构.因此,请查看任何免费文件系统的源代码.
您的编译器会从源代码生成AST,作为中间阶段.请查看任何免费编译器的源代码.
数据库索引通常存储为B*树的变量,尽管它们的名称不是二叉树.
二进制树已被用于旧游戏的3D游戏中的空间分区和隐藏表面移除,我相信在游戏Doom中使用了一个.