Обратный список связанного списка в C ++ с использованием только указателя узлаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Обратный список связанного списка в C ++ с использованием только указателя узла

Сообщение Anonymous »

Мой учитель покинул эту задачу: < /p>


Обратите порядок элементов связанного списка, только путем манипулирования указателями в каждом узле. Не разрешено перемещать элемент как таковой, а не создавать новый узел для этой операции. Списка и «Последний» является последним указателем списка.template
Node* LinkedList::getNode(unsigned int i)
{
int index = 0;
if (i == 0)
return first;
Node* cursor = first;
while (index != i && cursor)
{
cursor = cursor->getNext();
++index;
}
return cursor;
}
< /code>

и вот мой метод для обратного списка: < /p>

template
void LinkedList::reverse()
{
int i = 1, j = 2;
while(j setNext(getNode(size - j++));
if (j == size + 1)
first = getNode(size - (j - 2));
else
getNode(size - j)->setNext(getNode(size - i++));
getNode(size - 1)->setNext(nullptr);
}
last = getNode(size - 1);
}
< /code>

Как я уже говорил, мне нужно было знать, есть ли у меня способ сделать то же самое без использования этого метода (который создает указатель узла). Я думаю, что когда он ссылается на создание нового узла, он говорит о указателе узла, потому что вы не можете создать узел (объект, а не указатель) и назначить ему указатель списка. Спасибо людям, которые ответили.

Подробнее здесь: https://stackoverflow.com/questions/391 ... de-pointer
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»