{
  "translations": {
    "en": {
      "av_preorder": "Preorder traversal begins on composite-based binary tree.",
      "av_isnull": "Node is null, so we are done with traversal on VarBinNode rt.",
      "av_isnotnull": "Node is not null, so we begin traversal.",
      "av_checkleaf": "We check which subclass's traverse method to use based on the isLeaf() method.",
      "av_isleaf": "In this case, isLeaf() returns true, so we call VarLeafNodes's traverse() and visit the node.",
      "av_isnotleaf": "In this case, isLeaf() returns false, so we call VarIntlNode's traverse().",
      "av_visitinternal": "First we visit the internal node.",
      "av_traverseleft": "Finished visiting internal node, so we check to make sure the left child is not null, and proceed to traverse the left child by the parent internal node's pointer to it.",
      "av_traverseright": "Finished traversing left node, so we check to make sure the right child is not null, and proceed to traverse the right child by the parent internal node's pointer to it.",
      "av_done": "Finished the preorder traversal on "
    }
  },
  "code": {
    "java": [{
      "url": "../../../SourceCode/Java/Binary/ExpressionTreeC.java",
      "lineNumbers": false,
      "startAfter": "/* *** ODSATag: Composite *** */",
      "endBefore": "/* *** ODSAendTag: Composite *** */",
      "tags": {
        "traverse": 37,
        "checknull": 38,
        "endtraverse": 4,
        "leafnodeisleaf": 8,
        "leafnodevalue": 9,
        "leafnodetraverse": 10,
        "internalnodeisleaf": 15,
        "internalnodeleftchild": 16,
        "internalnoderightchild": 17,
        "internalnodevalue": 18,
        "internalnodetraverse": 19,
        "internalnodevisit": 20,
        "internalnodelefttraverse": 21,
        "internalnoderighttraverse": 22,
        "internalnodetraverseend": 23,
        "end": 10
      }
    }]
  }
}
