Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <body>
- <canvas id="myCanvas" width="600" height="600" style="border:1px solid #d3d3d3;">
- Your browser does not support the HTML5 canvas tag.</canvas>
- <script>
- var c = document.getElementById("myCanvas");
- var ctx = c.getContext("2d");
- ctx.font = "18px serif";
- ctx.textBaseline = "middle";
- ctx.textAlign = "center";
- var width = c.width;
- var height = c.height;
- var cx = width/2;
- var cy = height/2;
- function text(txt,x,y){
- var str = txt.toString();
- ctx.fillText(str.split("").join(String.fromCharCode(8202)),x,y);
- }
- function circleWithText(x,y){
- ctx.beginPath();
- ctx.arc(x,y,30,0,2*Math.PI);
- ctx.stroke();
- return function(txt){
- text(txt, x,y);
- }
- }
- //circleWithText(cx,100)("10");
- function isEmpty(obj) {
- for(var prop in obj) {
- if(obj.hasOwnProperty(prop))
- return false;
- }
- return JSON.stringify(obj) === JSON.stringify({});
- }
- var a = [10,3,15,5,7,24,6,12,9];
- function Node(_value, _rootNode = false){
- this.left = {};
- this.right = {};
- this.value = _value;
- this.rootNode = _rootNode;
- }
- function Tree(){
- this.rootNode;
- }
- Tree.prototype.addRootNode = function(node) {
- var value = node.value;
- if(this.rootNode && this.rootNode.value === value ) {
- console.log('Duplicate Root Node => ', value);
- return;
- }
- if(this.rootNode === undefined){
- var root = new Node(value, true);
- console.log('Root Node added => ',value);
- this.rootNode = root;
- }
- }
- Tree.prototype.addNode = function(node, _selectedNode) {
- var value = node.value;
- var selectedNode = _selectedNode;
- if(_selectedNode === undefined) {
- selectedNode = this.rootNode;
- }
- if(selectedNode && selectedNode.value === value ) {
- console.log('Duplicate Child Node => ', value);
- return;
- }
- if(value < selectedNode.value) {
- if(isEmpty(selectedNode.left)){
- console.log('Added Children node to LEFT => ',value);
- selectedNode.left = node;
- } else{
- this.addNode(node, selectedNode.left);
- }
- }
- if(value > selectedNode.value) {
- if(isEmpty(selectedNode.right)){
- console.log('Added Children node to RIGHT => ',value);
- selectedNode.right = node;
- } else {
- this.addNode(node, selectedNode.right);
- }
- }
- };
- Tree.prototype.traverse = function(node, _selectedNode) {
- }
- var tree = new Tree();
- tree.addRootNode(new Node(20));
- tree.addNode(new Node(200));
- tree.addNode(new Node(200));
- tree.addNode(new Node(2));
- tree.addNode(new Node(201));
- tree.addNode(new Node(10));
- tree.addNode(new Node(10));
- tree.traverse();
- console.log(tree)
- </script>
- </body>
- </html>
Add Comment
Please, Sign In to add comment