⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 binarysearchtreetest.java

📁 BOOK:Beginning Algorithms Code Examples
💻 JAVA
字号:
package com.wrox.algorithms.bstrees;import com.wrox.algorithms.sorting.NaturalComparator;import junit.framework.TestCase;/** * Test cases for {@link BinarySearchTree}. * */public class BinarySearchTreeTest extends TestCase {    private Node _a;    private Node _d;    private Node _f;    private Node _h;    private Node _i;    private Node _k;    private Node _l;    private Node _m;    private Node _p;    private Node _root;    private BinarySearchTree _tree;    protected void setUp() throws Exception {        super.setUp();        _a = new Node("A");        _h = new Node("H");        _k = new Node("K");        _p = new Node("P");        _f = new Node("F", null, _h);        _m = new Node("M", null, _p);        _d = new Node("D", _a, _f);        _l = new Node("L", _k, _m);        _i = new Node("I", _d, _l);        _root = _i;        _tree = new BinarySearchTree(NaturalComparator.INSTANCE);        _tree.insert(_i.getValue());        _tree.insert(_d.getValue());        _tree.insert(_l.getValue());        _tree.insert(_a.getValue());        _tree.insert(_f.getValue());        _tree.insert(_k.getValue());        _tree.insert(_m.getValue());        _tree.insert(_h.getValue());        _tree.insert(_p.getValue());    }    public void testInsert() {        assertEquals(_root, _tree.getRoot());    }    public void testSearch() {        assertEquals(_a, _tree.search(_a.getValue()));        assertEquals(_d, _tree.search(_d.getValue()));        assertEquals(_f, _tree.search(_f.getValue()));        assertEquals(_h, _tree.search(_h.getValue()));        assertEquals(_i, _tree.search(_i.getValue()));        assertEquals(_k, _tree.search(_k.getValue()));        assertEquals(_l, _tree.search(_l.getValue()));        assertEquals(_m, _tree.search(_m.getValue()));        assertEquals(_p, _tree.search(_p.getValue()));        assertNull(_tree.search("UNKNOWN"));    }    public void testDeleteLeafNode() {        Node deleted = _tree.delete(_h.getValue());        assertNotNull(deleted);        assertEquals(_h.getValue(), deleted.getValue());        _f.setLarger(null);        assertEquals(_root, _tree.getRoot());    }    public void testDeleteNodeWithOneChild() {        Node deleted = _tree.delete(_m.getValue());        assertNotNull(deleted);        assertEquals(_m.getValue(), deleted.getValue());        _l.setLarger(_p);        assertEquals(_root, _tree.getRoot());    }    public void testDeleteNodeWithTwoChildren() {        Node deleted = _tree.delete(_i.getValue());        assertNotNull(deleted);        assertEquals(_i.getValue(), deleted.getValue());        _i.setValue(_k.getValue());        _l.setSmaller(null);        assertEquals(_root, _tree.getRoot());    }    public void testDeleteRootNodeUntilTreeIsEmpty() {        while (_tree.getRoot() != null) {            Object key = _tree.getRoot().getValue();            Node deleted = _tree.delete(key);            assertNotNull(deleted);            assertEquals(key, deleted.getValue());        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -