【问题标题】:Making adjacency list, weird bug?制作邻接列表,奇怪的错误?
【发布时间】:2013-05-14 05:06:19
【问题描述】:

编辑:原始问题已修复。

新问题:While 循环不会中断 for or 语句:

while(m->next != NULL || m->val != n)
{ 
    cout<<"Looking for main node. Comparing"<<n<<" to "<<m->val<<endl;
    m = m->next;
}    

它会打印出所有的比较,包括完全相似的两个。为什么这不会破坏它?

【问题讨论】:

    标签: c++ linked-list adjacency-list


    【解决方案1】:

    m = NULL 是赋值语句,m == NULL 是要在您的if 语句中使用的比较语句

    注意: 检查m 是否为NULL 应在使用它进行均匀打印之前完成(在cout 中)

    如果你想继续while循环直到最后一个元素或val等于n,那么它应该是这样的

    while(m != NULL && m->val != n)
    { 
        cout<<"Looking for main node. Comparing"<<n<<" to "<<m->val<<endl;
        m = m->next;
    } 
    

    【讨论】:

    • 谢谢!你能帮我解决另一个问题吗?
    • 当然。更新您的问题或发布新问题
    • 不是 || = or and && = and?
    • 是的。带有 || b, 循环一直持续到 a 或 b 为真,只有当 a 和 b 为 0 时才退出。当 m->val != n 为假时需要退出。但你的 m->next != NULL 仍然是真的所以循环继续
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多