<snapdata remixID="8278292"><project name="Binary Search Trees" app="Snap! 5.0, http://snap.berkeley.edu" version="1"><notes>Binary search trees</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAACpklEQVR4Xu3XQaoaQQBF0ep96FyXo+CGnLggxdXoRnTQASFk8POTkEFfaI7jhkfdOtg6zfM8Dx8FogITgFF5s58CAIKQFgAwzW8cQAbSAgCm+Y0DyEBaAMA0v3EAGUgLAJjmNw4gA2kBANP8xgFkIC0AYJrfOIAMpAUATPMbB5CBtACAaX7jADKQFgAwzW8cQAbSAgCm+Y0DyEBaAMA0v3EAGUgLAJjmNw4gA2kBANP8xgFkIC0AYJrfOIAMpAUATPMbB5CBtACAaX7jADKQFgAwzW8cQAbSAgCm+Y0DyEBaAMA0v3EAGUgLAJjmNw4gA2kBANP8xgFkIC0AYJrfOIAMpAUATPMbB5CBtACAaX7jADKQFgAwzW8cQAbSAgCm+Y0DyEBaAMA0v3EAGUgLAPhN/v1+P87n8zidTukFrX0cwD/c8PF4HPM8f554PB7jfr+P7Xa7dhOLng/Av+Q+HA5fnpimabzf73G9Xhe9rDWOAfifAF+v17jdbms0seiZAPzHV/Dz+fy8gjebzaIXtPYxAL+54d1uNy6Xy/jdK3jtKJY8H4BL1rb19ff0/PNvnjgKBAV8AwbRTf4qACANaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xv/ASteArcSbq6lAAAAAElFTkSuQmCC</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" volume="100" pan="0" lines="round" ternary="false" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><script x="133" y="10"><block s="receiveGo"></block><block s="doSetVar"><l>r</l><custom-block s="Node %s"><l>50</l></custom-block></block><custom-block s="insert %s %s"><block var="r"/><custom-block s="Node %s"><l>30</l></custom-block></custom-block><custom-block s="insert %s %s"><block var="r"/><custom-block s="Node %s"><l>20</l></custom-block></custom-block><custom-block s="insert %s %s"><block var="r"/><custom-block s="Node %s"><l>40</l></custom-block></custom-block><custom-block s="insert %s %s"><block var="r"/><custom-block s="Node %s"><l>70</l></custom-block></custom-block><custom-block s="insert %s %s"><block var="r"/><custom-block s="Node %s"><l>60</l></custom-block></custom-block><custom-block s="insert %s %s"><block var="r"/><custom-block s="Node %s"><l>80</l></custom-block></custom-block><block s="doSayFor"><l>Traversing the binary search tree depth first in order</l><l>2</l></block><custom-block s="in order traverse tree %s on each item do %cmdRing"><block var="r"/><block s="reifyScript"><script><block s="doSayFor"><block var="item"/><l>1</l></block></script><list><l>item</l></list></block></custom-block><block s="doSayFor"><l>The first and second items in each binary search tree represent the left and right child.</l><l>4</l></block><block s="doSayFor"><l>Searching for a key will give you the root.</l><l>4</l></block><block s="doSayFor"><l>Searching for 70</l><l>2</l></block><block s="doSayFor"><custom-block s="search %s %s"><block var="r"/><l>70</l></custom-block><l>2</l></block><block s="doSayFor"><l>You can also traverse the tree breadth first</l><l>2</l></block><custom-block s="traverse breadth first %s on each item do %cmdRing"><block var="r"/><block s="reifyScript"><script><block s="doSayFor"><block var="item"/><l>1</l></block></script><list><l>item</l></list></block></custom-block></script><script x="394" y="32"><custom-block s="in order traverse tree %s on each item do %cmdRing"><block var="r"/><block s="reifyScript"><script></script><list></list></block></custom-block></script><script x="440" y="121"><custom-block s="post order traverse tree %s"><block var="r"/></custom-block></script><script x="558.740235375" y="82.000001"><block var="r"/></script></scripts></sprite><watcher var="r" style="normal" x="23" y="15" color="243,118,29" extX="186" extY="69" hidden="true"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="Node %&apos;key&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><custom-block s="None"></custom-block><custom-block s="None"></custom-block><block var="key"/></list></block></block></script></block-definition><block-definition s="insert %&apos;root&apos; %&apos;node&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><custom-block s="%s is None"><block var="root"/></custom-block><script><block s="doSetVar"><l>root</l><block var="node"/></block></script><script><block s="doIfElse"><block s="reportLessThan"><custom-block s="%s .val"><block var="root"/></custom-block><custom-block s="%s .val"><block var="node"/></custom-block></block><script><block s="doIfElse"><custom-block s="%s is None"><custom-block s="%s .right"><block var="root"/></custom-block></custom-block><script><custom-block s="%s .right = %s"><block var="root"/><block var="node"/></custom-block></script><script><custom-block s="insert %s %s"><custom-block s="%s .right"><block var="root"/></custom-block><block var="node"/></custom-block></script></block></script><script><block s="doIfElse"><custom-block s="%s is None"><custom-block s="%s .left"><block var="root"/></custom-block></custom-block><script><custom-block s="%s .left = %s"><block var="root"/><block var="node"/></custom-block></script><script><custom-block s="insert %s %s"><custom-block s="%s .left"><block var="root"/></custom-block><block var="node"/></custom-block></script></block></script></block></script></block></script><scripts><script x="322" y="187.2"><block s="doAddToList"><l>thing</l><l/></block></script><script x="329" y="283.2"><custom-block s="%s .right"><l></l></custom-block></script></scripts></block-definition><block-definition s="%&apos;tree&apos; .left" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="tree"/></block></block></script></block-definition><block-definition s="%&apos;tree&apos; .right" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="tree"/></block></block></script></block-definition><block-definition s="%&apos;tree&apos; .val" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="tree"/></block></block></script></block-definition><block-definition s="%&apos;tree&apos; .left = %&apos;node&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReplaceInList"><l>1</l><block var="tree"/><block var="node"/></block></script></block-definition><block-definition s="%&apos;tree&apos; .right = %&apos;node&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReplaceInList"><l>2</l><block var="tree"/><block var="node"/></block></script></block-definition><block-definition s="%&apos;tree&apos; .val = %&apos;val&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReplaceInList"><l>3</l><block var="tree"/><block var="val"/></block></script></block-definition><block-definition s="%&apos;input&apos; is None" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="input"/><custom-block s="None"></custom-block></block></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;yes&apos; else %&apos;no&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doReport"><block s="evaluate"><block var="yes"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="no"/><list></list></block></block></script></block></script></block-definition><block-definition s="None" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="in order traverse tree %&apos;root&apos; on each item do %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%cmdRing"></input></inputs><script><block s="doIf"><block s="reportNot"><custom-block s="%s is None"><block var="root"/></custom-block></block><script><custom-block s="in order traverse tree %s on each item do %cmdRing"><custom-block s="%s .left"><block var="root"/></custom-block><block var="action"/></custom-block><block s="doRun"><block var="action"/><list><custom-block s="%s .val"><block var="root"/></custom-block></list></block><custom-block s="in order traverse tree %s on each item do %cmdRing"><custom-block s="%s .right"><block var="root"/></custom-block><block var="action"/></custom-block></script></block></script></block-definition><block-definition s="search %&apos;root&apos; %&apos;key&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportOr"><custom-block s="%s is None"><block var="root"/></custom-block><block s="reportEquals"><custom-block s="%s .val"><block var="root"/></custom-block><block var="key"/></block></block><script><block s="doReport"><block var="root"/></block></script></block><block s="doIf"><block s="reportLessThan"><custom-block s="%s .val"><block var="root"/></custom-block><block var="key"/></block><script><block s="doReport"><custom-block s="search %s %s"><custom-block s="%s .right"><block var="root"/></custom-block><block var="key"/></custom-block></block></script></block><block s="doReport"><custom-block s="search %s %s"><custom-block s="%s .left"><block var="root"/></custom-block><block var="key"/></custom-block></block></script></block-definition><block-definition s="post order traverse tree %&apos;root&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><custom-block s="in order traverse tree %s on each item do %cmdRing"><custom-block s="%s .left"><block var="root"/></custom-block><block s="reifyScript"><script></script><list></list></block></custom-block><custom-block s="in order traverse tree %s on each item do %cmdRing"><custom-block s="%s .right"><block var="root"/></custom-block><block s="reifyScript"><script></script><list></list></block></custom-block><block s="doSayFor"><custom-block s="%s .val"><block var="root"/></custom-block><l>1</l></block></script></block-definition><block-definition s="height %&apos;node&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIfElse"><custom-block s="%s is None"><block var="node"/></custom-block><script><block s="doReport"><l>0</l></block></script><script><block s="doDeclareVariables"><list><l>lheight</l><l>rheight</l></list></block><block s="doSetVar"><l>lheight</l><custom-block s="height %s"><custom-block s="%s .left"><block var="node"/></custom-block></custom-block></block><block s="doSetVar"><l>rheight</l><custom-block s="height %s"><custom-block s="%s .right"><block var="node"/></custom-block></custom-block></block><block s="doIfElse"><block s="reportGreaterThan"><block var="lheight"/><block var="rheight"/></block><script><block s="doReport"><block s="reportSum"><block var="lheight"/><l>1</l></block></block></script><script><block s="doReport"><block s="reportSum"><block var="rheight"/><l>1</l></block></block></script></block></script></block></script></block-definition><block-definition s="traverse breadth first %&apos;root&apos; on each item do %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%cmdRing"></input></inputs><script><block s="doDeclareVariables"><list><l>h</l><l>i</l></list></block><block s="doSetVar"><l>h</l><custom-block s="height %s"><block var="root"/></custom-block></block><block s="doSetVar"><l>i</l><l>0</l></block><block s="doRepeat"><block var="h"/><script><block s="doChangeVar"><l>i</l><l>1</l></block><custom-block s="traverse level %s %s on each item do %cmdRing"><block var="root"/><block var="i"/><block var="action"/></custom-block></script></block></script></block-definition><block-definition s="traverse level %&apos;root&apos; %&apos;level&apos; on each item do %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%cmdRing"></input></inputs><script><block s="doIf"><custom-block s="%s is None"><block var="root"/></custom-block><script><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="level"/><l>1</l></block><script><block s="doRun"><block var="action"/><list><custom-block s="%s .val"><block var="root"/></custom-block></list></block></script><script><block s="doIf"><block s="reportGreaterThan"><block var="level"/><l>1</l></block><script><custom-block s="traverse level %s %s on each item do %cmdRing"><custom-block s="%s .left"><block var="root"/></custom-block><block s="reportDifference"><block var="level"/><l>1</l></block><block var="action"/></custom-block><custom-block s="traverse level %s %s on each item do %cmdRing"><custom-block s="%s .right"><block var="root"/></custom-block><block s="reportDifference"><block var="level"/><l>1</l></block><block var="action"/></custom-block></script></block></script></block></script></block-definition><block-definition s="pre order traverse tree %&apos;root&apos; on each item do %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%cmdRing"></input></inputs><script><block s="doIf"><block s="reportNot"><custom-block s="%s is None"><block var="root"/></custom-block></block><script><block s="doRun"><block var="action"/><list><custom-block s="%s .val"><block var="root"/></custom-block></list></block><custom-block s="in order traverse tree %s on each item do %cmdRing"><custom-block s="%s .left"><block var="root"/></custom-block><block var="action"/></custom-block><custom-block s="in order traverse tree %s on each item do %cmdRing"><custom-block s="%s .right"><block var="root"/></custom-block><block var="action"/></custom-block></script></block></script></block-definition><block-definition s="post order traverse tree %&apos;root&apos; on each item do %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%cmdRing"></input></inputs><script><block s="doIf"><block s="reportNot"><custom-block s="%s is None"><block var="root"/></custom-block></block><script><custom-block s="in order traverse tree %s on each item do %cmdRing"><custom-block s="%s .left"><block var="root"/></custom-block><block var="action"/></custom-block><custom-block s="in order traverse tree %s on each item do %cmdRing"><custom-block s="%s .right"><block var="root"/></custom-block><block var="action"/></custom-block><block s="doRun"><block var="action"/><list><custom-block s="%s .val"><block var="root"/></custom-block></list></block></script></block></script></block-definition></blocks><variables><variable name="r"><list id="535"><item><list id="536"><item><list struct="atomic" id="537">,,20</list></item><item><list struct="atomic" id="538">,,40</list></item><item><l>30</l></item></list></item><item><list id="539"><item><list struct="atomic" id="540">,,60</list></item><item><list struct="atomic" id="541">,,80</list></item><item><l>70</l></item></list></item><item><l>50</l></item></list></variable></variables></project><media name="Binary Search Trees" app="Snap! 5.0, http://snap.berkeley.edu" version="1"></media></snapdata>