gpt4 book ai didi

java - 测试深度优先树

转载 作者:行者123 更新时间:2023-11-29 03:50:55 25 4
gpt4 key购买 nike

我编写了一个 Java 程序来以深度优先的方式浏览一棵树。程序是正确的,但是节点的儿子的选择是随机的。例如在这棵树中:

enter image description here

有时,结果是:

  • A-B-E-C-F-D
  • A-C-F-D-B-E
  • A-B-E-D-C-F

我想对该程序进行测试(单元测试),但我不知道该怎么做?请

我想做一个包含元素的列表,并将列表的元素与我的深度优先树的结果进行比较,但我的深度优先的结果是随机的。那我就不能和List的元素比较了。

最佳答案

您要测试 2 个属性:

  1. 每个节点恰好访问了一个节点
  2. 遍历是深度优先

第一个很容易测试:访问的唯一节点数必须等于树中的节点数。可以针对任何随机树进行测试。

第二个稍微有点棘手 - 在一般情况下表达它可能比测试代码更复杂。更容易根据特定的已知数据选择一些有代表性的约束,即

  • B必须在A之后
  • E 必须在 B 之后立即
  • ...

很难想象现实的代码满足所有树的第一个属性,但仅在特定情况下才会使第二个属性失败。因此,除了最正式的安全关键系统(以及它们使用动态数据结构做什么?)之外,这就足够了。

关于java - 测试深度优先树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8861803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com