tree
by Vladymyr Shevchuk
JavaScript
const tree = {
data: [{a:1}, {b:2}, {c:3}, {d:4}, {e:5}],
next: {
data: [{a:1}, {b:2}, {c:3}],
next: {
data: [{a:1}],
next: null
}
}
};
function goTo(tree, n) {
let result;
let iterator = n - 1;
if (n === 1) {
return tree.data;
}
while(iterator--) {
if (!result) {
result = tree.next;
} else {
if (result.next) {
result = result.next
} else {
throw new Error('next does not exist');
}
}
}
return result.data;
}
function redo() {
return goTo(tree, n);
}
function undo() {
}
console.log(goTo(tree, 1));
console.log(goTo(tree, 2));
console.log(goTo(tree, 3));
console.log(goTo(tree, 4));
console.log(goTo(tree, 0));