1

私は Btree を持っており、キーが昇順で表示されるようにそれをトラバースする方法を理解しようとしています。

私が理解できるのは、これが再帰関数で実行できるということだけです。

それを行うための擬似コードは何ですか?

4

2 に答える 2

2

次のような定義があるとします。

template <class T>
class btree_node
{
    btree_node **child;  // an array of child nodes
    T **element;  // the elements in this node

    unsigned int child_count; // the number of children
                              // the number of elements is 1 less then child_count
};

次に、次のようなことをする必要があります。

void btree_inorder(node):
    for (int i = 0; i < node.child_count; ++i)
    {
        btree_inorder(node.child[i]);
        handle_element(node.element[i]);
    }
    btree_inorder(node.child[node.child_count-1]);
于 2010-05-10T02:32:50.443 に答える