三个数组 怎么根据每一个数组里面的parentID 如果相同的话构建成树行格式
时间: 2024-02-01 09:17:08 浏览: 75
可以使用哈希表和递归来实现。具体的步骤如下:
1. 遍历第一个数组,将其中的元素存入哈希表中,以其ID作为键,其它属性作为值。
2. 遍历第二个数组,将其中的元素存入哈希表中,以其ID作为键,其它属性作为值。
3. 遍历第三个数组,将其中的元素存入哈希表中,以其ID作为键,其它属性作为值。
4. 遍历第一个数组,对于每个元素,如果其parentID在哈希表中存在,则将其加入其parentID对应的子节点数组中。
5. 递归遍历根节点,输出树形结构即可。
下面是一个示例代码:
```python
def build_tree(arr1, arr2, arr3):
# 构建哈希表
hash_map = {}
for arr in [arr1, arr2, arr3]:
for item in arr:
hash_map[item['ID']] = item
# 构建树形结构
root = None
for item in arr1:
parent_id = item['parentID']
if parent_id in hash_map:
parent = hash_map[parent_id]
children = parent.get('children', [])
children.append(item)
parent['children'] = children
else:
root = item
# 递归输出树形结构
def print_tree(node, indent=''):
print(indent, node['name'])
for child in node.get('children', []):
print_tree(child, indent + ' ')
print_tree(root)
```
这个函数接受三个数组作为参数,可以根据每个元素的ID和parentID属性构建一颗树形结构,并输出树形结构。
阅读全文