Another update from ingydotnet^djgoku
This commit is contained in:
parent
91df62d461
commit
948b86eafa
7604 changed files with 108452 additions and 22726 deletions
89
Task/Tree-traversal/JavaScript/tree-traversal-2.js
Normal file
89
Task/Tree-traversal/JavaScript/tree-traversal-2.js
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
(function () {
|
||||
|
||||
function preorder(n) {
|
||||
return [n[v]].concat(
|
||||
n[l] ? preorder(n[l]) : []
|
||||
).concat(
|
||||
n[r] ? preorder(n[r]) : []
|
||||
);
|
||||
}
|
||||
|
||||
function inorder(n) {
|
||||
return (
|
||||
n[l] ? inorder(n[l]) : []
|
||||
).concat(
|
||||
n[v]
|
||||
).concat(
|
||||
n[r] ? inorder(n[r]) : []
|
||||
);
|
||||
}
|
||||
|
||||
function postorder(n) {
|
||||
return (
|
||||
n[l] ? postorder(n[l]) : []
|
||||
).concat(
|
||||
n[r] ? postorder(n[r]) : []
|
||||
).concat(
|
||||
n[v]
|
||||
);
|
||||
}
|
||||
|
||||
function levelorder(n) {
|
||||
return (function loop(x) {
|
||||
return x.length ? (
|
||||
x[0] ? (
|
||||
[x[0][v]].concat(
|
||||
loop(
|
||||
x.slice(1).concat(
|
||||
[x[0][l], x[0][r]]
|
||||
)
|
||||
)
|
||||
)
|
||||
) : loop(x.slice(1))
|
||||
) : [];
|
||||
})([n]);
|
||||
}
|
||||
|
||||
var v = 0,
|
||||
l = 1,
|
||||
r = 2,
|
||||
|
||||
tree = [1,
|
||||
[2,
|
||||
[4,
|
||||
[7]
|
||||
],
|
||||
[5]
|
||||
],
|
||||
[3,
|
||||
[6,
|
||||
[8],
|
||||
[9]
|
||||
]
|
||||
]
|
||||
],
|
||||
|
||||
lstTest = [["Traversal", "Nodes visited"]].concat(
|
||||
[preorder, inorder, postorder, levelorder].map(
|
||||
function (f) {
|
||||
return [f.name, f(tree)];
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
// [[a]] -> bool -> s -> s
|
||||
function wikiTable(lstRows, blnHeaderRow, strStyle) {
|
||||
return '{| class="wikitable" ' + (
|
||||
strStyle ? 'style="' + strStyle + '"' : ''
|
||||
) + lstRows.map(function (lstRow, iRow) {
|
||||
var strDelim = ((blnHeaderRow && !iRow) ? '!' : '|');
|
||||
|
||||
return '\n|-\n' + strDelim + ' ' + lstRow.map(function (v) {
|
||||
return typeof v === 'undefined' ? ' ' : v;
|
||||
}).join(' ' + strDelim + strDelim + ' ');
|
||||
}).join('') + '\n|}';
|
||||
}
|
||||
|
||||
return wikiTable(lstTest, true) + '\n\n' + JSON.stringify(lstTest);
|
||||
|
||||
})();
|
||||
3
Task/Tree-traversal/JavaScript/tree-traversal-3.js
Normal file
3
Task/Tree-traversal/JavaScript/tree-traversal-3.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
[["Traversal","Nodes visited"],
|
||||
["preorder",[1,2,4,7,5,3,6,8,9]],["inorder",[7,4,2,5,1,8,6,9,3]],
|
||||
["postorder",[7,4,5,2,8,9,6,3,1]],["levelorder",[1,2,3,4,5,6,7,8,9]]]
|
||||
Loading…
Add table
Add a link
Reference in a new issue