作为练习,我创建了自己的名为List的容器类模板。它是基于模板的单端链表,节点是嵌套在列表中的结构,如下所示:
template<typename T>
class list
{
protected:
struct node
{
T data;
node* link;
};
node* head;
//Rest of the code after here
};
容器有两个构建列表的函数:push_front和pop_front。我设法找出了push_front函数,但是我无法弄清楚如何编写pop_front函数。 pop_front函数删除列表的头部,并将列表中的下一个值设置为head。我不知道实际的pop_front函数是如何工作的,所以我被困在这里。接下来我该怎么办?
答案 0 :(得分:1)
我不知道你会怎么写这个函数。至于我,我会用以下方式写它。
void pop_front()
{
if ( head )
{
node *tmp = head;
head = head->link;
delete tmp
}
}