我在定义运算符时遇到了一个小问题:

运算符的代码为:

ostream& operator<< (ostream& outs, const IntQueue& queue)
{
    NodePtr temp = queue.head;
    while(temp->link != NULL)
    {
        outs << temp->data;
        outs << " ";
    }
    outs << endl;
    return outs;
}


我希望操作员为队列中的所有节点以及最后一个节点(指向NULL)显示temp-> data。我不知道如何修改while循环,因此它还会写出最后一个项目(指向NULL)。

希望我能说清楚。

干杯。

最佳答案

ostream& operator <<( ostream& outs, const IntQueue& queue )
{
    for ( NodePtr temp = queue.head; temp; temp = temp->link )
    {
        outs << temp->data;
        outs << " ";
    }

    outs << endl;

    return outs;
}

10-08 20:22