用typescript写一个普通树的前序遍历函数
时间: 2024-04-09 22:33:40 浏览: 18
当然!以下是用 TypeScript 编写的普通树的前序遍历函数:
```typescript
class TreeNode<T> {
value: T;
children: TreeNode<T>[];
constructor(value: T) {
this.value = value;
this.children = [];
}
}
function preorderTraversal<T>(root: TreeNode<T> | null): T[] {
const result: T[] = [];
function traverse(node: TreeNode<T> | null) {
if (node) {
result.push(node.value); // 访问当前节点
for (const child of node.children) {
traverse(child); // 遍历子节点
}
}
}
traverse(root);
return result;
}
```
在这个例子中,我们定义了一个泛型类 `TreeNode<T>`,它表示普通树的节点。`value` 属性存储节点的值,`children` 属性存储节点的子节点数组。
`preorderTraversal` 函数接受一个普通树的根节点作为参数,返回前序遍历结果的数组。
在 `traverse` 函数中,首先判断当前节点是否存在,如果存在则将当前节点的值加入到结果数组中,然后遍历当前节点的所有子节点,对每个子节点递归调用 `traverse` 函数进行遍历。
希望这可以满足你的需求!如果还有其他问题,请随时提问。