一个对象数组,根据父id和子id,生成树结构
时间: 2023-09-30 12:02:45 浏览: 97
你可以使用递归算法来生成树结构。首先,你需要定义一个节点类,包含一个唯一的ID和一个子节点列表。然后,遍历对象数组,将每个对象按照父ID和子ID的关系组织起来。
以下是一个示例代码:
```python
class Node:
def __init__(self, id):
self.id = id
self.children = []
def generate_tree(objects, parent_id, node_map):
if parent_id not in node_map:
return None
parent_node = node_map[parent_id]
for obj in objects:
if obj['parentId'] == parent_id:
child_node = Node(obj['id'])
parent_node.children.append(child_node)
generate_tree(objects, obj['id'], node_map)
def generate_tree_structure(objects):
root_id = None
node_map = {}
# 构建节点映射
for obj in objects:
node_map[obj['id']] = Node(obj['id'])
if obj['parentId'] is None:
root_id = obj['id']
# 生成树结构
generate_tree(objects, root_id, node_map)
# 返回根节点
return node_map[root_id]
```
你可以将对象数组作为参数传递给`generate_tree_structure`函数,它将返回树的根节点。请注意,你需要将对象数组的格式调整为你实际使用的格式。
阅读全文