# 开发时间: 20:53
class Node:
def __init__(self,name,type='dir'): #定义文件夹
self.name=name
self.type=type
self.children=[]
self.parent=None
def __repr__(self): #为了打印name
return self.name
class FileSystemTree:
def __init__(self):
self.root=Node('/') #建立跟文件夹
self.now=self.root #建立文件夹指针
def mkdir(self,name): #新建文件夹
if name[-1]!='/': #加/
name+='/'
node=Node(name)
self.now.children.append(node) #父子相连
node.parent=self.now
def ls(self): #展示文件夹
return self.now.children
def cd(self,name): #切换目录
if name[-1]!='/': #加/
name+='/'
if name=='../': #切换到父目录
self.now=self.now.parent
return
for child in self.now.children: #遍历子目录
if child.name==name: #判断子目录是否存在
self.now=child #指针指到子目录
return
raise ValueError('invalid dir') #抛出文件夹不存在的异常
fi=FileSystemTree()
fi.mkdir('var/')
fi.mkdir('bin/')
fi.mkdir('liu')
fi.cd('bin/')
fi.mkdir('python/')
fi.cd('../')
print(fi.ls())
8.算法树的实例之文件模拟系统
于 2022-04-11 21:31:06 首次发布