Python目录删除
def find_remaining_directories(m, relations, delete_id):
# 构建目录树
tree = {}
for child, parent in relations:
if parent not in tree:
tree[parent] = []
tree[parent].append(child)
# 找到所有需要删除的目录ID
to_delete = set()
stack = [delete_id]
while stack:
current = stack.pop()
to_delete.add(current)
if current in tree:
stack.extend(tree[current])
# 找到所有目录ID
all_ids = set()
for child, parent in relations:
all_ids.add(child)
all_ids.add(parent)
# 确保根目录0不被包含在剩余目录中(除非明确删除0)
if delete_id != 0:
to_delete.add(0) # 将根目录0加入删除集合
# 计算剩余的目录ID
remaining = sorted(all_ids - to_delete)
return remaining
# 自定义输入
m = int(input("请输入父子关系表的长度: "))
relations = []
for _ in range(m):
child, parent = map(int, input("请输入父子关系对(子目录ID 父目录ID): ").split())
relations.append((child, parent))
delete_id = int(input("请输入待删除的目录ID: "))
# 计算并输出剩余的目录ID
remaining = find_remaining_directories(m, relations, delete_id)
print("剩余的目录ID:", " ".join(map(str, remaining)))