Bidirectional_iterator
양방향 반복자이다.
임의접근반복자는 vector와 같이, 메모리끼리 붙어있어 인덱스로 접근이
가능한 곳에 사용되는한편, 양방향 반복자는 레드블랙트리(링크드 리스트)를
기반으로 만들어진 자료구조에 사용된다.
따라서, 임의접근반복자처럼 단지 포인터를 앞으로 옮기는것으로는, 원하는
노드에 접근하지못한다.
양방향 반복자를 이용하여, 최대, 최소값에 접근
node_pointer minValueNode(node_pointer node)
{
while (node->left != NULL)
node = node->left;
return node;
}
node_pointer maxValueNode(node_pointer node)
{
while (node->right != NULL)
node = node->right;
return node;
}
증감 연산자
bidirectional_iterator &operator++(int)
{
bidirectional tmp = *this;
_ptr++;
return tmp;
}
bidirectional_iterator operator++()
{
if (!_ptr->right)
{
if (_ptr->parent != _ptr)
_ptr = _ptr->parent;
}
return (*this);
}