remove 函数的返回值一般为 bool 类型,用以判断是否成功;
如果要求序列有序,插入操作之前首先进行的 search 操作,寻找合适的位置,如果查找得到,则无需再次插入,如果返回为空,则插入在指定的位置;
1. 含有父指针的二叉树结点
含有父指针的二叉树结点,一般会定义这样的一个宏(获取从父节点指向自己的指针):
#define FromParentTo(x) (IsRoot(x) ? _root : (IsLChild(x) ? (x).parent->lChild : (x).parent->rChild))
#define IsRoot(x) (x).parent == NULL
#define IsLChild(x) (!IsRoot(x) && (x).parent->lChild == x)
2. 成员函数的相互调用
typedef int Rank;
template <typename T>
class Vector{
protected:
int _size; int _capacity; T* _elem;
public:
Rank insert(Rank r, const T& e);
Rank insert(const T& e) { insert(_size, e); }
}