BinarySearchTreeMap中的空指针

时间:2014-04-24 04:52:28

标签: java map insert nullpointerexception binary-search-tree

我正在完成一个BinarySearchTreeMap类,它听起来确实如此:它是用二叉搜索树实现的Map。

我似乎得到了一个N​​ull指针异常,我无法控制。我认为这种情况发生在其他类似情况。我得到了问题的方法,我的逻辑似乎是正确的,所以如果有任何提示或提示为什么有一个空指针以及我将来如何防止这些,请告诉我!

以下是我正在创建的方法 - 在外部节点插入一个条目:

    /** Auxiliary method for inserting an entry at an external node.  Inserts e 
    *  at v, expanding v to be internal with empty external children, and then 
    *  returns e. */
    protected Entry<K,V> insertAtExternal(Position<Entry<K,V>> v, Entry<K,V> e) throws InvalidEntryException{
        if(isInternal(v)) throw new InvalidEntryException("You tried to insert an external at an  internal node!");
        replaceEntry(v,e); //replace the node at the given position
        insertLeft(v,null); //insert a dummy external node to the left of it
        insertRight(v,null); //insert a dummy external node to the right of it

        numEntries++; //since v is now internal, include it in the numEntries
        return e;

    }


    protected V replaceEntry(Position <Entry<K,V>> pos, Entry<K,V> ent) {
        ((BSTEntry<K,V>) ent).pos = pos;
        return replace(pos, ent).getValue();
    }

返回声明是导致我麻烦的行。 任何帮助将是欣赏。 克劳迪亚

编辑: 这就是替换方法的实现方式:

replace(Position<E> v, E o) 
throws InvalidPositionException {
BTPosition<E> vv = checkPosition(v);
E temp = v.element();
vv.setElement(o);
return temp;
}

0 个答案:

没有答案