Как я могу изменить порядок узлов в простом связанном списке? - PullRequest
1 голос
/ 25 октября 2011

Если у меня есть, например, 5 узлов, содержащих переменные 1, 2, 3, 4, 5, как я могу связать узлы, чтобы получить 3, 2, 1, 4, 5?(Замените первый узел третьим, а третий - первым).Спасибо.

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

Удалите узел с ключом == 1 и вставьте его после узла 2. Затем удалите узел 3 и поместите его в начало списка.(Под «узлом 3» я подразумеваю узел с ключом == 3, а не узел, который является третьим в списке, который теперь является узлом с ключом == 1.)

0 голосов
/ 25 октября 2011

Для вашего конкретного примера, если предположить, что у вас уже есть указатели (или итераторы) на узлы, это просто вопрос обмена значениями в двух узлах.

Теперь, если ваши узлы содержат более существенные данные, и вам действительно нужно поменять их местами, это просто вопрос установки указателей prev / next одного узла на другой, и наоборот. Если заголовок списка перемещается (и, возможно, хвост, в зависимости от того, как представлен ваш список), вам также придется обновить эти переменные.

...