Структура Node
содержит один элемент int
. Этот элемент int
абсолютно не связан с другими элементами int
.
То, что вы делаете с begin
и оператором приращения ++
- это обработка один узлов int
элемент в качестве первого элемента массива. Это означает, что ваш код немедленно выйдет за пределы go.
Чтобы решить вашу итерационную проблему, я сначала предлагаю вам абстрагировать список и узлы в различные структуры. Затем вы можете легко создать структуру-оболочку, которая содержит указатель на текущий узел в итерации списка. Эта структура-обертка должна затем перегрузить оператор ++
, который переведет go к следующему узлу в списке.
Несколько графически это может быть что-то вроде
+------+ +--------+ +--------+ +--------+
| list | --> | node 1 | --> | node 2 | --> | node 3 | --> ...
+------+ +--------+ +--------+ +--------+
^
|
+----------+
| iterator |
+----------+
Затем вы увеличиваете итератор и получаете следующее:
+------+ +--------+ +--------+ +--------+
| list | --> | node 1 | --> | node 2 | --> | node 3 | --> ...
+------+ +--------+ +--------+ +--------+
^
|
+----------+
| iterator |
+----------+
И так далее ...