返回可用于查找位置的节点以及谁的父级是令牌的绳索树



我正在尝试编写编译器/代码编辑器。

为了加快过程,我想要一个红色和黑色的树,返回一个节点,然后我可以用来将其在其下方获取字符串,并且它的位置值,并使用其父节点作为存储令牌的地方(这样(作为alphanumeric_word或left_peartheSis(。

我很难找到最好的方法。

我基本上想要可以执行以下操作的事情:

tree.insert("01234567890123456789",0);
node = tree.at(10);
tree.insert("string",5);
node.index(); //should be 10+length("string")
node.value(); //should be '0'
node.tokenPtr.value; //should point to a token with the value of NUMBER

我正在寻找可以修改的这棵树的最简单实现,因为这些树可能会令人沮丧地从头开始构建和调试。

以下代码是我正在寻找的(它具有父节点(,但缺少索引查找的索引功能。这是需要的,因为我想创建一个将节点用作键和node.index((的映射为排序值,以便我不必更新该映射中的键。

[[[Archive.gamedev.net/archive/reference/programming/features/tstorage/page2.html]]

我试图查看SGI的绳索强度,但是代码压倒性且难以理解。

本教程似乎很有帮助,但是它也没有提供双重链接的树,我认为可以用来找到节点的索引:

[[EvernallyConfuzzled.com/tuts/datastructures/jsw_tut_rbtree.aspx]]

更新:我找到了一个具有父节点的实现,但是它仍然缺乏索引计数属性:

[[web.mit.edu/~emin/desktop/ref_to_emin/www.old/source_code/red_black_tree/index.html]

我找到了一个解决方案,另一种解决方案可能起作用。

您必须使用sgi stl绳索mutable_begin(( (index(迭代器。

也有此功能,但是我仍然很难分析SGI绳索代码以查看它的作用:

mutable_reference_at(index(

最新更新