|
|
1.1 ! root 1: tree ! 2: .nf ! 3: .IS ! 4: box treenode ! 5: { ! 6: var ne, nw, sw, se, ! 7: hook, lchild, rchild, cen; ! 8: ne = nw + width; ! 9: se = sw + width; ! 10: ne = se + (0,1)*height; ! 11: hook = (ne + nw)/2; ! 12: cen = (ne + sw)/2; ! 13: lchild = (sw + cen)/2; ! 14: rchild = (se + cen)/2; ! 15: conn ne to nw; ! 16: conn nw to sw; ! 17: conn sw to se; ! 18: conn se to ne; ! 19: conn (nw + sw)/2 to (ne + se)/2; ! 20: conn cen to (sw + se)/2; ! 21: } ! 22: ! 23: box tree ! 24: { ! 25: var height, width; ! 26: height = ht/2; ! 27: width = 2*wd/3; ! 28: put node0:treenode{hook=root;}; ! 29: put node1:treenode{hook=node0.hook-(0,1)*ht-wd;}; ! 30: put node2:treenode{hook=node0.hook-(0,1)*ht+wd;}; ! 31: put node3:treenode{hook=node2.hook-(0,1)*ht-wd;}; ! 32: put node4:treenode{hook=node2.hook-(0,1)*ht+wd;}; ! 33: conn node0.lchild to node1.hook; ! 34: conn node0.rchild to node2.hook; ! 35: conn node2.lchild to node3.hook; ! 36: conn node2.rchild to node4.hook; ! 37: } ! 38: ! 39: box main ! 40: { ! 41: put T:tree{var root, ht, wd; ! 42: root = (1,-3); ! 43: ht = 1; ! 44: wd = 1; ! 45: }; ! 46: } ! 47: .IE ! 48: .IS ! 49: ...forget treenode tree ! 50: .IE
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.