📄 defaultmutabletreenode.java
字号:
index = 0;// while (current != root) { do {// if (random.nextInt(3) < 2) { if (random.nextBoolean()) { node = new DefaultMutableTreeNode(String.valueOf(index)); index++; current.add(node); current = node; } else { current = (DefaultMutableTreeNode) current.getParent(); } // if// } // while } while (current != root && current != null); System.out.println("Number of nodes: " + index);/* // Calc # children size = random.nextInt(4); for (index = 0; index < size; index++) { // Create Node node = new DefaultMutableTreeNode(String.valueOf(index)); growTree(node); // Add Node to root root.add(node); } // for*/ } // growTree() public static void main(String[] argv) {/* DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("node1"); DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("node2"); DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("node3"); DefaultMutableTreeNode node4 = new DefaultMutableTreeNode("node4"); DefaultMutableTreeNode node5 = new DefaultMutableTreeNode("node5"); DefaultMutableTreeNode node6 = new DefaultMutableTreeNode("node6"); DefaultMutableTreeNode node7 = new DefaultMutableTreeNode("node7"); DefaultMutableTreeNode node8 = new DefaultMutableTreeNode("node8"); node1.add(node2); node1.add(node3); node2.add(node4); node2.add(node5); node3.add(node6); node3.add(node7); node5.add(node8); System.out.println("Depth (node1): " + node1.getDepth()); System.out.println("Depth (node2): " + node2.getDepth()); System.out.println("Depth (node3): " + node3.getDepth());*/ System.out.println("Create tree..."); DefaultMutableTreeNode root = new DefaultMutableTreeNode("root"); growTree(root); System.out.println("Find depth..."); System.out.println("Depth (root): " + root.getDepth()); } // main /** * getLevel * @returns int */ public int getLevel() { // Variables TreeNode current; int count; // Lookup Parent count = -1; current = this; do { current = current.getParent(); count++; } while (current != null); return count; } // getLevel() /** * getPathToRoot * @param value0 TODO * @param value1 TODO * @returns TreeNode[] */ protected TreeNode[] getPathToRoot(TreeNode value0, int value1) { return null; // TODO } // getPathToRoot() /** * getUserObjectPath * @returns Object[] */ public Object[] getUserObjectPath() { // Variables TreeNode[] path; Object[] object; int size; int index; // Get Path for Tree Nodes path = getPath(); // Construct Object Path object = new Object[path.length]; for (index = 0; index < path.length; index++) { object[index] = ((DefaultMutableTreeNode) path[index]).getUserObject(); } // for // Return Object Path return object; } // getUserObjectPath() /** * getRoot * @returns TreeNode */ public TreeNode getRoot() { // Variables TreeNode current; TreeNode check; // Lookup Parent current = this; check = current.getParent(); while (check != null) { current = check; check = current.getParent(); } // while return current; } // getRoot() /** * isRoot * @returns boolean */ public boolean isRoot() { return (parent == null); } // isRoot() /** * getNextNode * @returns DefaultMutableTreeNode */ public DefaultMutableTreeNode getNextNode() { return null; // TODO } // getNextNode() /** * getPreviousNode * @returns DefaultMutableTreeNode */ public DefaultMutableTreeNode getPreviousNode() { return null; // TODO } // getPreviousNode() /** * preorderEnumeration * @returns Enumeration */ public Enumeration preorderEnumeration() { return null; // TODO } // preorderEnumeration() /** * postorderEnumeration * @returns Enumeration */ public Enumeration postorderEnumeration() { return null; // TODO } // postorderEnumeration() /** * breadthFirstEnumeration * @returns Enumeration */ public Enumeration breadthFirstEnumeration() { return null; // TODO } // breadthFirstEnumeration() /** * depthFirstEnumeration * @returns Enumeration */ public Enumeration depthFirstEnumeration() { return null; // TODO } // depthFirstEnumeration() /** * pathFromAncestorEnumeration * @param value0 TODO * @returns Enumeration */ public Enumeration pathFromAncestorEnumeration(TreeNode value0) { return null; // TODO } // pathFromAncestorEnumeration() /** * isNodeChild * @param value0 TODO * @returns boolean */ public boolean isNodeChild(TreeNode node) { // Variables TreeNode current; int index; // Sanity Check if (node == null) { return false; } // if // Process Path current = node; while (current != null) { if (current == this) { return true; } // if current = current.getParent(); } // while // Node not located in path, not child return false; } // isNodeChild() /** * getFirstChild * @returns TreeNode */ public TreeNode getFirstChild() { return (TreeNode) children.firstElement(); } // getFirstChild() /** * getLastChild * @returns TreeNode */ public TreeNode getLastChild() { return (TreeNode) children.lastElement(); } // getLastChild() /** * getChildAfter * @param value0 TODO * @returns TreeNode */ public TreeNode getChildAfter(TreeNode node) { // Variables int index; // Check node if (node == null || node.getParent() != this) { throw new IllegalArgumentException(); } // if // Get index of child node index = getIndex(node); // Check for child after index++; if (index == getChildCount()) { return null; } // if // Retrieve Child After return getChildAt(index); } // getChildAfter() /** * getChildBefore * @param value0 TODO * @returns TreeNode */ public TreeNode getChildBefore(TreeNode node) { // Variables int index; // Check node if (node == null || node.getParent() != this) { throw new IllegalArgumentException(); } // if // Get index of child node index = getIndex(node); // Check for child before index--; if (index < 0) { return null; } // if // Retrieve Child Before return getChildAt(index); } // getChildBefore() /** * isNodeSibling * @param value0 TODO * @returns boolean */ public boolean isNodeSibling(TreeNode node) { // Variables int index; // Check for null if (node == null) { return false; } // if // Check if nodes share a parent if (node.getParent() == getParent() && getParent() != null) { return true; } // if // Nodes are not siblings return false; } // isNodeSibling() /** * getSiblingCount * @returns int */ public int getSiblingCount() { // Variables // Check for no parent if (parent == null) { return 1; } // if // Calculate sibling count from parent's child count return parent.getChildCount(); } // getSiblingCount() /** * getNextSibling * @returns DefaultMutableTreeNode */ public DefaultMutableTreeNode getNextSibling() { // Variables int index; int size; // Check for Parent if (parent == null) { return null; } // if // Get Index of this node index = parent.getIndex(this); // Check for Next Sibling size = parent.getChildCount(); index++; if (index == size) { return null; } // if return (DefaultMutableTreeNode) parent.getChildAt(index); } // getNextSibling() /** * getPreviousSibling * @returns DefaultMutableTreeNode */ public DefaultMutableTreeNode getPreviousSibling() { // Variables int index; // Check for Parent if (parent == null) { return null; } // if // Get Index of this node index = parent.getIndex(this); // Check for Previous Sibling index--; if (index < 0) { return null; } // if return (DefaultMutableTreeNode) parent.getChildAt(index); } // getPreviousSibling() /** * isLeaf * @returns boolean */ public boolean isLeaf() { return (children.size() == 0); // TODO: check allowsChildren?? } // isLeaf() /** * getFirstLeaf * @returns DefaultMutableTreeNode */ public DefaultMutableTreeNode getFirstLeaf() { // Variables TreeNode current; current = this; while (current.getChildCount() > 0) { current = current.getChildAt(0); } // while return (DefaultMutableTreeNode) current; } // getFirstLeaf() /** * getLastLeaf * @returns DefaultMutableTreeNode */ public DefaultMutableTreeNode getLastLeaf() { // Variables TreeNode current; int size; current = this; size = current.getChildCount(); while (size > 0) { current = current.getChildAt(size - 1); size = current.getChildCount(); } // while return (DefaultMutableTreeNode) current; } // getLastLeaf() /** * getNextLeaf * @returns DefaultMutableTreeNode */ public DefaultMutableTreeNode getNextLeaf() { return null; // TODO } // getNextLeaf() /** * getPreviousLeaf * @returns DefaultMutableTreeNode */ public DefaultMutableTreeNode getPreviousLeaf() { return null; // TODO } // getPreviousLeaf() /** * getLeafCount * @returns int */ public int getLeafCount() { // Variables Enumeration enum; int count; TreeNode current; // Get Enumeration of all descendants enum = depthFirstEnumeration(); // Process Nodes count = 0; while (enum.hasMoreElements() == true) { current = (TreeNode) enum.nextElement(); if (current.isLeaf() == true) { count++; } // if } // if return count; } // getLeafCount()} // DefaultMutableTreeNode
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -