Guest User

Untitled

a guest
Jul 17th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4.  
  5. <canvas id="myCanvas" width="600" height="600" style="border:1px solid #d3d3d3;">
  6. Your browser does not support the HTML5 canvas tag.</canvas>
  7.  
  8. <script>
  9. var c = document.getElementById("myCanvas");
  10. var ctx = c.getContext("2d");
  11. ctx.font = "18px serif";
  12. ctx.textBaseline = "middle";
  13. ctx.textAlign = "center";
  14.  
  15. var width = c.width;
  16. var height = c.height;
  17. var cx = width/2;
  18. var cy = height/2;
  19.  
  20. function text(txt,x,y){
  21. var str = txt.toString();
  22. ctx.fillText(str.split("").join(String.fromCharCode(8202)),x,y);
  23. }
  24.  
  25. function circleWithText(x,y){
  26. ctx.beginPath();
  27. ctx.arc(x,y,30,0,2*Math.PI);
  28. ctx.stroke();
  29. return function(txt){
  30. text(txt, x,y);
  31. }
  32. }
  33.  
  34. //circleWithText(cx,100)("10");
  35.  
  36. function isEmpty(obj) {
  37. for(var prop in obj) {
  38. if(obj.hasOwnProperty(prop))
  39. return false;
  40. }
  41.  
  42. return JSON.stringify(obj) === JSON.stringify({});
  43. }
  44.  
  45. var a = [10,3,15,5,7,24,6,12,9];
  46.  
  47. function Node(_value, _rootNode = false){
  48. this.left = {};
  49. this.right = {};
  50. this.value = _value;
  51. this.rootNode = _rootNode;
  52. }
  53.  
  54. function Tree(){
  55. this.rootNode;
  56. }
  57. Tree.prototype.addRootNode = function(node) {
  58. var value = node.value;
  59. if(this.rootNode && this.rootNode.value === value ) {
  60. console.log('Duplicate Root Node => ', value);
  61. return;
  62. }
  63. if(this.rootNode === undefined){
  64. var root = new Node(value, true);
  65. console.log('Root Node added => ',value);
  66. this.rootNode = root;
  67. }
  68. }
  69. Tree.prototype.addNode = function(node, _selectedNode) {
  70. var value = node.value;
  71. var selectedNode = _selectedNode;
  72. if(_selectedNode === undefined) {
  73. selectedNode = this.rootNode;
  74. }
  75.  
  76. if(selectedNode && selectedNode.value === value ) {
  77. console.log('Duplicate Child Node => ', value);
  78. return;
  79. }
  80.  
  81. if(value < selectedNode.value) {
  82. if(isEmpty(selectedNode.left)){
  83. console.log('Added Children node to LEFT => ',value);
  84. selectedNode.left = node;
  85. } else{
  86. this.addNode(node, selectedNode.left);
  87. }
  88. }
  89.  
  90.  
  91. if(value > selectedNode.value) {
  92. if(isEmpty(selectedNode.right)){
  93. console.log('Added Children node to RIGHT => ',value);
  94. selectedNode.right = node;
  95. } else {
  96. this.addNode(node, selectedNode.right);
  97. }
  98. }
  99.  
  100.  
  101. };
  102.  
  103. Tree.prototype.traverse = function(node, _selectedNode) {
  104.  
  105.  
  106. }
  107.  
  108.  
  109. var tree = new Tree();
  110. tree.addRootNode(new Node(20));
  111. tree.addNode(new Node(200));
  112. tree.addNode(new Node(200));
  113.  
  114. tree.addNode(new Node(2));
  115. tree.addNode(new Node(201));
  116. tree.addNode(new Node(10));
  117. tree.addNode(new Node(10));
  118.  
  119. tree.traverse();
  120.  
  121. console.log(tree)
  122.  
  123. </script>
  124.  
  125. </body>
  126. </html>
Add Comment
Please, Sign In to add comment