我给了一个列表类,它有一个Node
内部类。这里是内部类:push_front方法C++
class Node
{
public:
/**
* The constructor
* @param data the data to be stored in this node
*/
explicit Node(const Object& data)
: data(data), next(NULL) {}
Object data;
Node * next;
};
我们被告知写push_front
方法,将一个元素推到一个列表的前面。我有一些麻烦提出正确的方法来做到这一点。该list
类有3个私人属性:uint size
,Node * first
和Node * last
我想到了push_front
应的工作方式是这样的:如果列表目前是空的(即size = 0
),那么任何对象,我们正在努力推动宜成为该清单上的最后一个元素。我们尝试推动的任何其他元素将成为第一个并指向下一个节点。
void push_front(const Object& item)
{
Node * new_node = new Node(item);
if (size == 0)
{
new_node = last;
}
else
{
Node * temp = first;
first->data = new_node;
first->next = temp;
}
我不禁觉得这不是正确的方法来做到这一点。任何人都可以指引我正确的方向或建议我如何以正确的方式做到这一点?谢谢。 }
你能对你的感觉拟订一项不对了? –
我也建议删除C++ 11标记,除非你特别想要定位C++ 11的功能。 –