例如,我写了一个二叉树先序遍历算法,它和书上教的不一样,我怎样检验它的正确性?
代码如下:
class Bnode{...};//二叉树节点
class Bintree{...};//二叉树
template template //用visit访问x子树
void Bintree::travpre(VST& visit,Bnode* x){
stack> s;
Bnode tp = x;
while (tp != nullptr)
{
visit(tp);
if (tp->rchild_ != nullptr)
s.push(tp->rchild_);
if (tp->lchild_ != nullptr)
tp = tp->lchild_;
else
{
tp = s.top();
s.pop();
}
}
}
它能通过编译,我在脑子里推导了几遍,也没发现问题,有没有更可靠的方法检验算法的正确性。
如何检验一个算法的正确性?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-