У меня есть ДОБАВИТЬ узел в конец связанного СПИСОК, он пока не делает никаких ошибок, но, видимо, он тоже не работает. Я просмотрел другие ответы, но не мог понять, что с тобой не так. Я думаю, что проблема может быть с getNext() и NULL. пс: Я использую ГЭССвязанный список C++
Вот метод:
// ADD a node to the end of the Linked list
void add(const T& dado)
{
Elemento <T> *novo = new Elemento<T>(dado, NULL);
if (novo == NULL)
{
throw 2;
}
if (head->getNext() != NULL)
{
Elemento <T> *auxi = new Elemento<T>(dado, head->getNext());
int i;
for (i = 0; auxi->getNext() == NULL; i++)
{
auxi->setNext(auxi->getNext());
if (auxi->getNext()() == NULL)
{
size++;
auxi->setNext(novo);
}
}
}
else
{
size++;
head->setNext(novo);
}
}
Мой класс Elemento выглядит следующим образом:
#ifndef ELEMENTO_HPP
#define ELEMENTO_HPP
template<typename T>
class Elemento {
private:
T *info;
Elemento<T>* _next;
public:
Elemento(const T& info, Elemento<T>* next) : info(new T(info)), _next(next) {}
~Elemento() {
delete info;
}
Elemento<T>* getNext() const {
return _next;
}
T getInfo() const {
return *info;
}
void setNext(Elemento<T>* next) {
_next = next;
}
};
#endif
Вы можете увидеть весь код здесь: http://pastebin.com/7yJfsK8j (имена метод на португальском, но есть комментарии, чтобы объяснить).
Прошли ли вы по отладке своего кода? – Dai
Определите «не работает». –
это еще сентябрь? –