📄 eulertour.java
字号:
/** * Template for algorithms traversing a binary tree using an Euler * tour. The subclasses of this class will redefine some of the * methods of this class to create a specific traversal. */public abstract class EulerTour { protected InspectableBinaryTree tree; public Object execute(BinaryTree T) { tree = T; return null; // nothing interesting to return } protected Object eulerTour(Position p) { TraversalResult r = initResult(); if (tree.isExternal(p)) { visitExternal(p, r); } else { visitLeft(p, r); r.leftResult = eulerTour(tree.leftChild(p)); // recursive traversal visitBelow(p, r); r.rightResult = eulerTour(tree.rightChild(p)); // recursive traversal visitRight(p, r); } return result(r); } // methods that can be redefined by the subclasses protected void visitExternal(Position p, TraversalResult r) {} protected void visitLeft(Position p, TraversalResult r) {} protected void visitBelow(Position p, TraversalResult r) {} protected void visitRight(Position p, TraversalResult r) {} protected TraversalResult initResult() { return new TraversalResult(); } protected Object result(TraversalResult r) { return r.finalResult; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -