History log of /haiku/headers/private/kernel/util/AVLTreeMap.h
Revision Date Author Comments
# 1fdcaccf 09-Aug-2012 Pawel Dziepak <pdziepak@quarnos.org>

AVLTreeMap::MakeEmpty should set fTree.fRoot to NULL


# 06e87420 28-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

Fix #8643: AVLTreeMap strategy Auto discards const

Signed-off-by: Ingo Weinhold <ingo_weinhold@gmx.de>


# 8fd0aea6 07-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

AVLTreeMap fixes

* AVLTreeMap::_GetKey(): Change return type from const Key& to Key, so
the strategy can do that as well and doesn't have have a Key object in
the node.
* Fix the Auto strategy: It was using the undefined _GetKey() instead
of GetKey().


# 004b3604 06-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

AVLTreeMap/TwoKeyAVLTree: More access to nodes

both:
* Add Previous()/Next().
* Add Insert() version that returns a Node* instead of an Iterator.
* Add Remove() version that takes a Node* instead of a key.

TwoKeyAVLTree:
* Add GetIterator() version that takes an additional Node*, i.e.
initializing an iterator to point to the node.
* Add Iterator::CurrentNode().


# 3877a7f4 07-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

AVLTreeMap fixes

* AVLTreeMap::_GetKey(): Change return type from const Key& to Key, so
the strategy can do that as well and doesn't have have a Key object in
the node.
* Fix the Auto strategy: It was using the undefined _GetKey() instead
of GetKey().


# 0c19263c 06-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

AVLTreeMap/TwoKeyAVLTree: More access to nodes

both:
* Add Previous()/Next().
* Add Insert() version that returns a Node* instead of an Iterator.
* Add Remove() version that takes a Node* instead of a key.

TwoKeyAVLTree:
* Add GetIterator() version that takes an additional Node*, i.e.
initializing an iterator to point to the node.
* Add Iterator::CurrentNode().


# a54549a8 06-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* AVLTree:
- Renamed to AVLTreeBase and moved it into its own header/source file.
- Renamed FindClose() to FindClosest().
- Added CheckTree() method for debugging purposes. It checks the validity
of the tree.
* Added a templatized class AVLTree which doesn't offer a map-like interface
like AVLTreeMap, but rather one similar to BOpenHashMap and SplayTree. It
is more convenient to use, if one wants to store objects that already
contain the key.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34526 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8d24cfc6 05-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added Iterator::NextValuePointer().
* Made reference returned by _GetKey() const. That's sufficient.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33898 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a29487d 11-Aug-2007 Jérôme Duval <korli@users.berlios.de>

fixed gcc4 build


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21896 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 25294551 11-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Revised the AVLTreeMap code:
* Pulled the actual tree code into a non-templatized class AVLTree to
reduce the amount of code generated each time the template is
instantiated.
* Changed the iterator interface to Java-style.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21892 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 960371b7 11-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

Replaced <new> with <util/kernel_cpp.h> - this is the kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7913 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c4de095c 29-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed invalid default argument. Not that the compiler eats the file now...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3743 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e0f43e3e 28-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

The beginning of an AVL tree based map implementation. Well, the tree part
is complete, the interface needs work.
Unfortunately our ancient compiler chokes on this (`Internal Compiler
Error'). I got around the problem by restructuring parts of the code once,
but now I'm stuck -- no idea what I could change. So, there won't be
AVLTree{Map,Set} until we have a working compiler. :-(


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3712 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1fdcaccf17782c690dc056f8655e68ccdb85e8c1 09-Aug-2012 Pawel Dziepak <pdziepak@quarnos.org>

AVLTreeMap::MakeEmpty should set fTree.fRoot to NULL


# 06e8742063e6bd56b6b4c0d75f1129034feec6a0 28-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

Fix #8643: AVLTreeMap strategy Auto discards const

Signed-off-by: Ingo Weinhold <ingo_weinhold@gmx.de>


# 8fd0aea602ce72c60911071af5c4b7f940390482 07-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

AVLTreeMap fixes

* AVLTreeMap::_GetKey(): Change return type from const Key& to Key, so
the strategy can do that as well and doesn't have have a Key object in
the node.
* Fix the Auto strategy: It was using the undefined _GetKey() instead
of GetKey().


# 004b3604a0f2f9cc69f00c656a05f0145ad7fb9f 06-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

AVLTreeMap/TwoKeyAVLTree: More access to nodes

both:
* Add Previous()/Next().
* Add Insert() version that returns a Node* instead of an Iterator.
* Add Remove() version that takes a Node* instead of a key.

TwoKeyAVLTree:
* Add GetIterator() version that takes an additional Node*, i.e.
initializing an iterator to point to the node.
* Add Iterator::CurrentNode().


# 3877a7f4a001e7a9fad0215a5694a1cc7ec0e397 07-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

AVLTreeMap fixes

* AVLTreeMap::_GetKey(): Change return type from const Key& to Key, so
the strategy can do that as well and doesn't have have a Key object in
the node.
* Fix the Auto strategy: It was using the undefined _GetKey() instead
of GetKey().


# 0c19263c85c5bdc6742227dc8311e0d83f476ec5 06-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

AVLTreeMap/TwoKeyAVLTree: More access to nodes

both:
* Add Previous()/Next().
* Add Insert() version that returns a Node* instead of an Iterator.
* Add Remove() version that takes a Node* instead of a key.

TwoKeyAVLTree:
* Add GetIterator() version that takes an additional Node*, i.e.
initializing an iterator to point to the node.
* Add Iterator::CurrentNode().


# a54549a8cdd4a567bf24bd8b4217f9040baf3112 06-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* AVLTree:
- Renamed to AVLTreeBase and moved it into its own header/source file.
- Renamed FindClose() to FindClosest().
- Added CheckTree() method for debugging purposes. It checks the validity
of the tree.
* Added a templatized class AVLTree which doesn't offer a map-like interface
like AVLTreeMap, but rather one similar to BOpenHashMap and SplayTree. It
is more convenient to use, if one wants to store objects that already
contain the key.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34526 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8d24cfc6c29e928331c4714c928aa94449c5524b 05-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added Iterator::NextValuePointer().
* Made reference returned by _GetKey() const. That's sufficient.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33898 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a29487db52366ae901f1f8f0e4a9a45b949efab 11-Aug-2007 Jérôme Duval <korli@users.berlios.de>

fixed gcc4 build


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21896 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2529455101f78af7ce67b6cd188eaf8de555fd6b 11-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Revised the AVLTreeMap code:
* Pulled the actual tree code into a non-templatized class AVLTree to
reduce the amount of code generated each time the template is
instantiated.
* Changed the iterator interface to Java-style.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21892 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 960371b741a8c578158b070e8ce6d5ec6beb3c1a 11-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

Replaced <new> with <util/kernel_cpp.h> - this is the kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7913 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c4de095cd18ac6e626aa0bf1c21bed3c1c8d1f4c 29-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed invalid default argument. Not that the compiler eats the file now...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3743 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e0f43e3e843b15d2a90e6ac1c7d0800b7117fca7 28-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

The beginning of an AVL tree based map implementation. Well, the tree part
is complete, the interface needs work.
Unfortunately our ancient compiler chokes on this (`Internal Compiler
Error'). I got around the problem by restructuring parts of the code once,
but now I'm stuck -- no idea what I could change. So, there won't be
AVLTree{Map,Set} until we have a working compiler. :-(


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3712 a95241bf-73f2-0310-859d-f6bbb57e9c96