''' Created on Jan 13, 2017 @author: David ''' class TreeRepresentation: nodes = [] height = 0 root = None def __init__(self): self.nodes = [] def getNodes(self): return self.nodes def addNode(self,node): self.nodes.append(node) def setRoot(self,root): self.root = root self.nodes.append(root) def getRoot(self): return self.root def incrementHeight(self): self.height += 1 def getHeight(self): return self.height def getNodeById(self,node_id): return [x for x in self.nodes if x.node_id == node_id] class TreeNode: content = 0 node_id = 0 children = [] father = None def getChildren(self): return self.children def getContent(self): return self.content def getId(self): return self.node_id def setContent(self,ctn): self.content = ctn def setId(self,node_id): self.node_id = node_id def addChild(self,c): self.children.append(c) def setFather(self,father): self.father = father def getFather(self): return self.father def __init__(self,content="",node_id=-1,children=[]): self.content = content self.node_id = node_id self.children = children def __str__(self): return self.content + "^" + str(self.node_id) class TreeNodePair: nx = 0 nz = 0 def __init__(self,nx=0,nz=0): self.nx = nx self.nz = nz def getNx(self): return self.nx def getNz(self): return self.nz def __str__(self): return str(self.nx) + ":" + str(self.nz) class DeltaMatrix: matrix = {} def add(self,id1,id2,val): key = str(id1) + ";" + str(id2) self.matrix[key] = val def get(self,id1,id2): key = str(id1) + ";" + str(id2) if key in self.matrix.keys(): return self.matrix[key] return -1 def clear(self): self.matrix = {} def __str__(self): s = "" for k,v in self.matrix.items(): s += "{}:{}\n".format(k,v) return s