class TreeNode:
def __init__(self, id, name):
self.id = id
self.name = name
self.children = []
def build_tree(data):
id_to_node = {}
root = None
for item_id, table_id, name in data:
if table_id not in id_to_node:
id_to_node[table_id] = TreeNode(table_id, f"Table {table_id}")
if not root:
root = id_to_node[table_id]
if item_id not in id_to_node:
id_to_node[item_id] = TreeNode(item_id, f"Item {item_id}")
parent = id_to_node[table_id]
child = id_to_node[item_id]
parent.children.append(child)
return root
# Example data: (item_id, table_id, name)
data = [
(101, 1, "Item A"),
(102, 1, "Item B"),
(201, 2, "Item X"),
(202, 2, "Item Y"),
]
root = build_tree(data)
def print_tree(node, depth=0):
print(" " * depth + node.name)
for child in node.children:
print_tree(child, depth + 1)
print_tree(root)
"树状结构"的数据结构展示。在树中,每个节点表示一个item_id,而父节点则表示对应的table_id。