【发布时间】:2013-05-25 12:19:31
【问题描述】:
我想就如何编写这个 add() 函数获得一些帮助,了解如何将元素放在列表的最后一个位置。目前看起来是这样的:
我已经对其进行了编辑,现在开始上课了:
#include <iostream>
using namespace std;
template <class T>
class List;
template <class T>
class Node {
public:
Node ( T *t) : data(t), next(0) {}
~Node();
private:
T *data;
Node* next;
friend class List<T>;
};
template <class T>
class Predicate {
public:
Predicate() {}
virtual bool operator()( const T& v) = 0;
};
template <class T>
class List {
public:
List() : first(new Node<T>(T())) {} //"dummy"-nod först
void add( T *t );
void remove_if( T t );
void remove_if( Predicate<T> &pred );
void print(); // skriver alla elementen inom "måsvingar"
private:
Node<T> *first;
};
我主要有:
int main()
List<int> intlista;
intlista.add( new int(1) );
intlista.add( new int(2) );
intlista.add( new int(3) );
intlista.add( new int(2) );
intlista.add( new int(4) );
intlista.add( new int(5) );
intlista.add( new int(6) );
【问题讨论】:
-
最好的帮助是,尝试使用
std::list -
Node是如何实现的?对于这个链表,Node需要包含一个指向下一个Node的指针。然后可以通过遍历这些指针来在后面添加一个元素,或者另外保留一个指向List类中最后一个元素的指针。 -
@amaurea 我已经编辑了主帖,所以你可以自己看看:)
-
告诉我们你做了什么。搏一搏。你不是通过按 CTRL-C / CTRL-V 和一些鼠标点击和拖动来学习编程的。
-
@MarketingMark 请查看meta.stackexchange.com/questions/40164/…,请不要要求我们修复您的代码,这是一个问答网站,不同于帮助台或论坛。
标签: c++ list linked-list element