class Employee:
def __init__(self, id, mgrId, name):
self.id = id
self.mgrId = mgrId
self.name = name
# sample data
#E = [Employee(1, 0, 'ABC'), Employee(2, 1, 'DEF'), Employee(3, 1, 'GHI')]
E = [Employee(1, 1, 'ABC'), Employee(4,4,'IJK'), Employee(2, 1, 'DEF'), Employee(5,4,'MNO'), Employee(3, 1, 'GHI')]
def directReportsBFS(E,s):
Q = []
level = 0
Q.append(s)
while (len(Q) > 0):
c = Q.pop(0)
if c is None:
level = level + 1
continue
Reports = [e for e in E if e.mgrId == c.id and e.mgrId != e.id]
print 'Name:' + c.name + ' Level:' + str(level) + ' Reports:' +"[{0}]".format(", ".join(str(r.name) for r in Reports))
Q.append(None)
all(Q.append(report) for report in Reports)
[directReportsBFS(E,e) for e in E if e.mgrId == e.id]
No comments:
Post a Comment