Задачата е по дадено листо от дървото, да се намери следващото листо. Ако няма следващо, зарежда първото, тоест върти в кръг. Ако дървото има само един елемент, връща него.
Структурата на дървото е в двойно свързан списък със следене на началото и на края:
struct TObject
  .__parent dd ?       ; родителски елемент
  .__first_child dd ?  ; начало на списъка с дъщерни елементи
  .__last_child  dd ?  ; край на списъка с дъщерни елементи
  .__next   dd ?       ; следващ елемент
  .__prev   dd ?       ; предишен елемент
ends
Измислих супер код от 12 инструкции с използването само на един регистър:
; EAX == начален елемент
.next:
        cmp     [eax+TObject.__next], 0
        cmovne  eax, [eax+TObject.__next]
        jne     .down_to_leaf
        cmp     [eax+TObject.__parent], 0
        cmovne  eax, [eax+TObject.__parent]
        jne     .next
.back_to_first:
        cmp     [eax+TObject.__prev], 0
        cmovne  eax, [eax+TObject.__prev]
        jne     .back_to_first
.down_to_leaf:
        cmp     [eax+TObject.__first_child], 0
        cmovne  eax, [eax+TObject.__first_child]
        jne     .down_to_leaf
; EAX == следващ елемент.