link mingle home | logged in as: guest | login/register| submit link


IndiaDiscuss.com : Social Bookmarkings and News Networking Site for India
algorithms
Bookmarks
Threaded Binary Tree
-31
Votes

[code] package trees; class Node { int val; boolean leftThread = false; //Left Child is Null boolean rightThread = false; //Right Child is Null Node leftChild; Node rightChild; int getVal(){return val;} Node(int v){val = v;} Node() {} } public class ThreadedBTree { public void insertNode(Node root,int val) { Node currentNode =root; while(true) { if(currentNode.getVal()>val ) { if(currentNode.rightThread ==true) { Node newNode = new Node(val); currentNode.rightChild = newNode; currentNode.rightThread = false; newNode.rightThread = true; newNode.leftThread = true; newNode.rightChild = currentNode.rightChild; newNode.leftChild = currentNode; return; }else { currentNode = currentNode.rightChild; continue; } }else { if(currentNode.leftThread ==true) { Node newNode = new Node(val); currentNode.leftChild = newNode; currentNode.leftThread = false; newNode.leftThread = true; newNode.rightThread = true; newNode.leftChild = currentNode.leftChild; newNode.rightChild = currentNode; return ; }else { currentNode = currentNode.leftChild; continue; } } //exit; } } public ThreadedBTree() { } public static void main(String[] args) { Node a = new Node(1); ThreadedBTree TBT = new ThreadedBTree(); TBT.insertNode(new Node(2),2); } } [/code]

saved under Code Snippets/Trees/Threaded Trees by algorithms

 
package trees;


  class Node
  {
    int val;
    boolean leftThread = false; //Left Child is Null
    boolean rightThread = false; //Right Child is Null
    Node leftChild;
    Node rightChild;
    int getVal(){return val;}
    Node(int v){val = v;}
    Node() {}
  }


public class ThreadedBTree
{

  
  
  public void insertNode(Node root,int val)
  {
    Node currentNode =root;
    while(true)
    {
      if(currentNode.getVal()>val )
      {
        if(currentNode.rightThread ==true)
        {
          Node newNode = new Node(val);
          currentNode.rightChild = newNode; 
          currentNode.rightThread = false;
          newNode.rightThread = true;
          newNode.leftThread = true;
          newNode.rightChild = currentNode.rightChild;
          newNode.leftChild = currentNode; 
          return;
        }else
        {
          currentNode = currentNode.rightChild;
          continue;
        }
      }else
      {
        if(currentNode.leftThread ==true)
        {
          Node newNode = new Node(val);
          currentNode.leftChild = newNode; 
          currentNode.leftThread = false;
          newNode.leftThread = true;
          newNode.rightThread = true;
          newNode.leftChild = currentNode.leftChild;
          newNode.rightChild = currentNode; 
          return ;
        }else
        {
          currentNode = currentNode.leftChild;
          continue;
        }
      }
      
      //exit;
    }
  }
  
  
  public ThreadedBTree()
  {
  }
  
  
  public static void main(String[] args)
  {
    Node a = new Node(1);
    ThreadedBTree TBT = new ThreadedBTree();
    TBT.insertNode(new Node(2),2);
    
  }
  
}

comment by algorithms on 2008-05-13 19:33:27
 



Enter the string above
 
IndiaDiscuss | Published News | Hot
Indian Social News and Links Network
IndiaDiscuss | Published News
Indian Social News and Links Network