我想得到一些关于如何编写这个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) );
答案 0 :(得分:3)
从列表的第一个节点开始,按照next
节点,直到找到一个为NULL的节点。创建一个新节点,并将其分配给next
。
first-&gt; next-&gt; next-&gt; next-&gt; ... next-&gt; NULL
然后
first-&gt; next-&gt; next-&gt; next-&gt; ... next-&gt; new_node-&gt; NULL