- P54 Tree representation.
- P55 Construct completely balanced binary trees. [Tree.cBalanced()]
- P56 Symmetric binary trees. [tree.hasSymmetricStructure()]
- P57 Binary search trees (dictionaries). [BinarySearchTree]
- P58 Generate-and-test paradigm. [Tree.allSymmetricBalancedTrees()]
- P59 Construct height-balanced binary trees. [Tree.allHeightBalanced()]]
- P60 Construct height-balanced binary trees with a given number of nodes. [Tree.minHbalNodes(), Tree.maxHbalHeight(), Tree.allHeightBalancedWithNodes()]
- P61 Count the leaves of a binary tree. [tree.leavesCount()]
- P61A Collect the leaves of a binary tree in a list. [tree.leavesList(), tree.leavesKeysList()]
- P62A Collect the internal nodes of a binary tree in a list. [tree.internalNodesList(), tree.internalNodesList()]
- P62B Collect the nodes at a given level in a list. [tree.nodesAtHeight(), tree.nodesKeysAtHeight()]
- P80 [graph.toString(), SimpleGraph.fromString()]
- P81 All paths from one vertex to another one. [graph.allAcyclicPaths()]
- P82 All cycles starting and ending on a vertex. [graph.allCycles()]
- P83 All spanning trees. [graph.allSpanningTrees()]
- P84 Construct the minimal spanning tree. [graph.prim()]
- P85 Graph isomorphism. [graph.isIsomorphicTo()]
- P86 Node degree and graph coloration. [graph.inDegree(), graph.outDegree(), graph.verticesByDegree()]
- Welsh-Powell's algorithm. [graph.vertexColoring()]
- P87 Depth-first order graph traversal [graph.verticesByDepthFrom()]
- P88 Connected components. [graph.connectedComponents(), graph.stronglyConnectedComponents()]
- P89 Bipartite graphs. [graph.isBipartite()]