class Node: def __init__(self, name, parent=None): self.name = name self.parent = parent self.children = [] if parent: self.parent.children.append(self) def __repr__(self): if self.children == []: return self.name return '('+self.name + ' ' + ' '.join(repr(c) for c in self.children)+')' Write a complete python file that will print the tree (1 (2 3) 4) Call the root of the tree 'root'. Then print out str(root). DO NOT MODIFY THE Node CLASS.
class Node: def __init__(self, name, parent=None): self.name = name self.parent = parent self.children = [] if parent: self.parent.children.append(self) def __repr__(self): if self.children == []: return self.name return '('+self.name + ' ' + ' '.join(repr(c) for c in self.children)+')' Write a complete python file that will print the tree (1 (2 3) 4) Call the root of the tree 'root'. Then print out str(root). DO NOT MODIFY THE Node CLASS.
Sure! Below is a complete Python script that defines the `Node` class as provided, constructs the specified tree `(1 (2 3) 4)` with the root node named `root`, and then prints the string representation of the tree.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Node: def __init__(self, name, parent=None): self.name = name self.parent = parent self.children = [] if parent: self.parent.children.append(self) def __repr__(self): if self.children == []: return self.name return '(' + self.name + ' ' + ' '.join(repr(c) for c in self.children) + ')' # Construct the tree root = Node('1') # Root node named '1' node2 = Node('2', parent=root) # Child of root named '2' node3 = Node('3', parent=node2) # Child of node '2' named '3' node4 = Node('4', parent=root) # Another child of root named '4' # Print the tree print(str(root)) |
1 2 | (1 (2 3) 4) |
1 2 | python print_tree.py |
1 | (1 (2 3) 4) |
I extracted the following code from that output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Node: def __init__(self, name, parent=None): self.name = name self.parent = parent self.children = [] if parent: self.parent.children.append(self) def __repr__(self): if self.children == []: return self.name return '(' + self.name + ' ' + ' '.join(repr(c) for c in self.children) + ')' # Construct the tree root = Node('1') # Root node named '1' node2 = Node('2', parent=root) # Child of root named '2' node3 = Node('3', parent=node2) # Child of node '2' named '3' node4 = Node('4', parent=root) # Another child of root named '4' # Print the tree print(str(root)) |
Running the following program:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Node: def __init__(self, name, parent=None): self.name = name self.parent = parent self.children = [] if parent: self.parent.children.append(self) def __repr__(self): if self.children == []: return self.name return '(' + self.name + ' ' + ' '.join(repr(c) for c in self.children) + ')' # Construct the tree root = Node('1') # Root node named '1' node2 = Node('2', parent=root) # Child of root named '2' node3 = Node('3', parent=node2) # Child of node '2' named '3' node4 = Node('4', parent=root) # Another child of root named '4' # Print the tree print(str(root)) |
(1 (2 3) 4)
Testing if the previous output contains the string (1 (2 3) 4)
: True
class Node: def __init__(self, name, parent=None): self.name = name self.parent = parent self.children = [] if parent: self.parent.children.append(self) def __repr__(self): if self.children == []: return self.name return '('+self.name + ' ' + ' '.join(repr(c) for c in self.children)+')' Write a complete python file that will print the tree (1 (2 3) 4) Call the root of the tree 'root'. Then print out str(root). DO NOT MODIFY THE Node CLASS.
class Node: def __init__(self, name, parent=None): self.name = name self.parent = parent self.children = [] if parent: self.parent.children.append(self) def __repr__(self): if self.children == []: return self.name return '('+self.name + ' ' + ' '.join(repr(c) for c in self.children)+')' Write a complete python file that will print the tree (1 (2 3) 4) Call the root of the tree 'root'. Then print out str(root). DO NOT MODIFY THE Node CLASS.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | class Node: def __init__(self, name, parent=None): self.name = name self.parent = parent self.children = [] if parent: self.parent.children.append(self) def __repr__(self): if self.children == []: return self.name return '(' + self.name + ' ' + ' '.join(repr(c) for c in self.children) + ')' # Create the root of the tree root = Node('1') # Create the children of the root node2 = Node('2', root) node4 = Node('4', root) # Create the child of node2 node3 = Node('3', node2) # Print the tree print(str(root)) |
1 | (1 (2 3) 4) |
I extracted the following code from that output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | class Node: def __init__(self, name, parent=None): self.name = name self.parent = parent self.children = [] if parent: self.parent.children.append(self) def __repr__(self): if self.children == []: return self.name return '(' + self.name + ' ' + ' '.join(repr(c) for c in self.children) + ')' # Create the root of the tree root = Node('1') # Create the children of the root node2 = Node('2', root) node4 = Node('4', root) # Create the child of node2 node3 = Node('3', node2) # Print the tree print(str(root)) |
Running the following program:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | class Node: def __init__(self, name, parent=None): self.name = name self.parent = parent self.children = [] if parent: self.parent.children.append(self) def __repr__(self): if self.children == []: return self.name return '(' + self.name + ' ' + ' '.join(repr(c) for c in self.children) + ')' # Create the root of the tree root = Node('1') # Create the children of the root node2 = Node('2', root) node4 = Node('4', root) # Create the child of node2 node3 = Node('3', node2) # Print the tree print(str(root)) |
(1 (2 3) 4)
Testing if the previous output contains the string (1 (2 3) 4)
: True