Home
Insert
Update snippet 'Iterate B-Tree'
Title
Description
Iterate simple b-tree
Source code
type Key = int type BTree = | Node of Key list * BTree * BTree * BTree | Empty let rec findKey (targetKey:Key) (bTree:BTree) = match bTree with | Node (keyList, lessTree, betweenTree, greaterTree) -> let minKey = List.min keyList let maxKey = List.max keyList let extractor item = item = targetKey; if targetKey < minKey then findKey targetKey lessTree else if targetKey > maxKey then findKey targetKey greaterTree else if (List.exists extractor keyList) then let foundElement = List.find extractor keyList Some(foundElement) else findKey targetKey betweenTree | Empty -> None let lessTree = Node(([-12; -3; 0], Empty, Empty, Empty)) let greaterTree = Node(([100; 200; 300], Empty, Empty, Empty)) let middleTree = Node(([3], Empty, Empty, Empty)) let tree = Node(([1; 2; 4], lessTree, middleTree, greaterTree)) let key = findKey 3 tree
Tags
b-tree
tree
b-tree
tree
Author
Link
Reference NuGet packages
If your snippet has external dependencies, enter the names of NuGet packages to reference, separated by a comma (
#r
directives are not required).
Update