class documentation
class ExpressionTree(LinkedBinaryTree):
An arithmetic expression tree.
Method | __init__ |
Create an expression tree. |
Method | __str__ |
Return string representation of the expression. |
Method | evaluate |
Return the numeric result of the expression. |
Method | _evaluate |
Return the numeric result of subtree rooted at p. |
Method | _parenthesize |
Append piecewise representation of p's subtree to resulting list. |
Inherited from LinkedBinaryTree
:
Class |
|
An abstraction representing the location of a single element. |
Method | __len__ |
Return the total number of elements in the tree. |
Method | left |
Return the Position of p's left child (or None if no left child). |
Method | num |
Return the number of children of Position p. |
Method | parent |
Return the Position of p's parent (or None if p is root). |
Method | right |
Return the Position of p's right child (or None if no right child). |
Method | root |
Return the root Position of the tree (or None if tree is empty). |
Class | _ |
Lightweight, nonpublic class for storing a node. |
Method | _add |
Create a new left child for Position p, storing element e. |
Method | _add |
Create a new right child for Position p, storing element e. |
Method | _add |
Place element e at the root of an empty tree and return new Position. |
Method | _attach |
Attach trees t1 and t2, respectively, as the left and right subtrees of the external Position p. |
Method | _delete |
Delete the node at Position p, and replace it with its child, if any. |
Method | _make |
Return Position instance for given node (or None if no node). |
Method | _replace |
Replace the element at position p with e, and return old element. |
Method | _validate |
Return associated node, if position is valid. |
Instance Variable | _root |
Undocumented |
Instance Variable | _size |
Undocumented |
Inherited from BinaryTree
(via LinkedBinaryTree
):
Method | children |
Generate an iteration of Positions representing p's children. |
Method | inorder |
Generate an inorder iteration of positions in the tree. |
Method | positions |
Generate an iteration of the tree's positions. |
Method | sibling |
Return a Position representing p's sibling (or None if no sibling). |
Method | _subtree |
Generate an inorder iteration of positions in subtree rooted at p. |
Inherited from Tree
(via LinkedBinaryTree
, BinaryTree
):
Method | __iter__ |
Generate an iteration of the tree's elements. |
Method | breadthfirst |
Generate a breadth-first iteration of the positions of the tree. |
Method | depth |
Return the number of levels separating Position p from the root. |
Method | height |
Return the height of the subtree rooted at Position p. |
Method | is |
Return True if the tree is empty. |
Method | is |
Return True if Position p does not have any children. |
Method | is |
Return True if Position p represents the root of the tree. |
Method | postorder |
Generate a postorder iteration of positions in the tree. |
Method | preorder |
Generate a preorder iteration of positions in the tree. |
Method | _height |
Return the height of the tree. |
Method | _height |
Return the height of the subtree rooted at Position p. |
Method | _subtree |
Generate a postorder iteration of positions in subtree rooted at p. |
Method | _subtree |
Generate a preorder iteration of positions in subtree rooted at p. |
Create an expression tree.
In a single parameter form, token should be a leaf value (e.g., '42'), and the expression tree will have that value at an isolated node.
In a three-parameter version, token should be an operator, and left and right should be existing ExpressionTree instances that become the operands for the binary operator.