Линейная структура данных выглядит примерно так:
A
B
C
D
E
Например, списки и массивы. За каждым элементом следует один элемент. Траверс тривиален, поскольку вы просто переходите от одного элемента к другому. Например, если вы начинаете с A, у вас есть только один следующий элемент B, из B вы имеете только один следующий элемент C и так далее.
Нелинейная структура данных выглядит примерно так:
A
/ \
B C
/ \ /\
D E F G
Например, дерево. Обратите внимание, что за A следуют два элемента; B и C, и за каждым из них следуют два элемента. Теперь обход более сложный, потому что, как только вы начинаете с A, у вас есть выбор: либо B, либо C. Более того, один раз в B, у вас есть выбор идти дальше или идти «вбок» на C. В этот случай (дерево), ваши варианты обхода имеют ширину или сначала глубину.