if语句的区别
发布时间
阅读量:
阅读量
目录
议题深入探讨
议题简要阐述
归纳总结
话题深入探讨
昨日在编写二叉搜索树相关程序时,我完成了一段代码,然而当插入超过三个节点后,系统便出现异常并导致程序终止,具体代码如下:
while(p){
q = p;//改变之前保存父节点
if(element.key == p->data.key) return false;//发生重复不可插入
if(element.key < p->data.key) p = p->leftChild;
if(element.key > p->data.key) p = p->rightChild;
}
初看这段代码似乎并无明显错误,但为何会出现报错情况呢?经过后续测试确认,问题源于对多重if语句的不规范应用。当程序执行到第二个if语句,即以下这个if语句时:
if(element.key < p->data.key) p = p->leftChild;
此时若第二个条件成立,p指针的值将发生改变,因此在执行第三个if判断时,所使用的数值已不再是原先的值,这可能导致第三个条件依然成立。通过将代码调整为标准的if else结构,该
全部评论 (0)
还没有任何评论哟~
