В цикле for при перемещении массива я могу пересекать каждый второй индекс массива с приращением переменной цикла в два. Но как я могу использовать любой цикл для посещения каждого второго узла в круговом связанном списке? Я предполагаю, что могу пересекать каждый узел из любого направления, но то, что я хочу сделать, - это если abcdea является круговым связанным списком, который я хочу пересечь, как acebdac ... ...Как пройти каждый второй узел в круговом связанном списке?
ответ
Не уверен, что вы пытаетесь для достижения здесь, но в любом случае вы можете просто перейти на каждый второй узел, используя следующий следующий указатель узла (и/или предыдущий предыдущий указатель, если он дважды связан).
Вы можете сделать это в цикле;
loop (condition) {
traveler = traveler->next->next;
// Do something with node
...
}
Здесь ваш traveler
узел просто фиктивный узел, который пересекает список.
Поскольку ваш связанный список является круговым, ваш condition
должен быть таким, что вам нужно найти какой-то способ завершения цикла вместо обнаружения, если следующий узел (traveler
) является NULL
.
если размер шага - два - путешественник-> следующий-> следующий ..... и если размер шага = 3 это путешественник-> следующий- > next-> дальше? , и если я хочу переменный размер шага, что мне делать? – quidstone
@quidstone - я не буду показывать вам код, но если вы хотите изменить размер шага, рекурсивная функция сделает трюк. Все, что вам нужно сделать, это передать свой размер шага и текущий узел в функцию. Затем вы увеличите счетчик при переходе к следующему узлу, и как только вы достигнете размера шага, верните указатель на этот узел. Удачи. – bwinata
- 1. Как удалить узел в круговом связанном списке
- 2. Полином в круговом связанном списке
- 3. Очередь в круговом связанном списке
- 4. Попытка удалить узел в одиночном круговом связанном списке
- 5. Удаление узла в круговом связанном списке C++?
- 6. Удаление узла в круговом связанном списке
- 7. элемент по индексу в круговом связанном списке
- 8. Печать в обратном круговом одиночном связанном списке
- 9. Узел Обмен в связанном списке
- 10. Узел заголовка в связанном списке
- 11. Решение для поиска начала цикла в круговом единственном связанном списке
- 12. Как найти максимальную сумму подпоследовательности в круговом связанном списке
- 13. Как удаляется узел в связанном списке?
- 14. Как создать корневой узел в связанном списке?
- 15. Как удалить первый узел в связанном списке?
- 16. Функция отображения в круговом связанном списке в C
- 17. Удалить в круговом двухсвязном списке, связанном с головой
- 18. Когда свободный узел в связанном списке
- 19. Ошибка при поиске max и min в круговом связанном списке
- 20. головной узел в связанном списке в c
- 21. Удалить узел в связанном списке TAIL C++
- 22. фиктивный узел в общем связанном списке
- 23. Удалить узел в двойном связанном списке (C++)
- 24. Как выбрать каждый второй узел в XSL
- 25. удалить наименьший узел в связанном списке
- 26. C удалить узел в связанном списке
- 27. Удалить 10000-й узел в связанном списке
- 28. Включая конечный узел в связанном списке
- 29. Как сравнить каждый элемент в связанном списке в C?
- 30. Удаление в связанном списке
Вы имеете в виду выполнить некоторую операцию на 'a', затем' c' и т. Д.? Или переходите от 'a' к' c' без запроса 'b' каким-либо образом? – Beta
как это может быть без запроса b? @Beta –
@Beta Я хочу выполнить некоторую операцию на c и т. Д. ... и я не запрашиваю b, поскольку у меня нет операции на b. – quidstone