Note

The wasBinarySearchTreePredecessor function takes as arguments:

  • a binary search tree (BST) as a flattened list as per binary_trees.
  • the node (node) to find the predecessor of.

and returns the in-order predecessor of the specified node in the binary search tree.

Code

This script was tested and works on OpenSim version 0.7.5!

///////////////////////////////////////////////////////////////////////////
//    Copyright (C) 2013 Wizardry and Steamworks - License: GNU GPLv3    //
///////////////////////////////////////////////////////////////////////////
string wasBinarySearchTreePredecessor(list BST, string node) {
    string left = wasBinaryTreeLeft(BST, node);
    if(left != "") return wasBinarySearchTreeMinimum(BST, left);
    string parent = wasBinaryTreeParent(BST, node);
    while(parent != "" && node == wasBinaryTreeLeft(BST, parent)) {
        node = wasBinaryTreeParent(BST, node);
        parent = wasBinaryTreeParent(BST, parent);
    }
    return parent;
}

secondlife/binary_trees/binary_search_trees/predecessor.txt ยท Last modified: 2017/02/22 18:30 (external edit)

Access website using Tor


For the copyright, license, warranty and privacy terms for the usage of this website please see the license and privacy pages.