Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| data_structure [2024/05/26 11:08] – created root1 | data_structure [2024/05/26 13:05] (current) – root1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Tree ====== | ====== Tree ====== | ||
| < | < | ||
| - | let a: number | + | export function inorderTraversal< |
| + | root: node< | ||
| + | fn: (n: T) => boolean, | ||
| + | newTree?: node< | ||
| + | ) { | ||
| + | newTree = { | ||
| + | value: root.value, | ||
| + | children: [], | ||
| + | }; | ||
| + | console.log(root.value); | ||
| + | if (root.children) { | ||
| + | for (const n of root.children) { | ||
| + | if (fn(root.value)) { | ||
| + | if (fn(n.value)) { | ||
| + | newTree.children!.push(inorderTraversal(n, | ||
| + | } else { | ||
| + | for (const nn of n.children) { | ||
| + | newTree.children!.push(inorderTraversal(nn, | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | return newTree; | ||
| + | } | ||
| </ | </ | ||