我正在尝试在单链表中重载运算符。
我有一个节点类:T info nodeType *link
迭代器类(它是单链表的朋友):nodeType *first nodeType *current bool offTheEdge
单链表类:*first *last
我已经成功修改了 operator++ 方法,并且通过了所有测试。代码如下:
if(offTheEdge == true)
{
return *this;
}
else
{
if(current->link == NULL)
{
offTheEdge = true;
return *this;
}
else
{
current = current->link;
}
}
return *this;
我的指令如下:与operator++相同,但要倒退。在单链表中倒退意味着您必须从头开始,并确定 this->current 所在的节点后面。
请帮助,无论我尝试什么,我都无法获得以前的元素并向后工作。谢谢!
我的操作员代码 - 是:
ListIterator<T> temp;
temp.current = first;
while(temp.current->link != this->current)
{
temp.current = temp.current->link;
}
return temp;
如果我的列表是 2,4,6,8,10,12,14,16,18,20....它每次都返回 20