Advertisement
SVXX

InOrderPreOrder

Feb 8th, 2014
402
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.39 KB | None | 0 0
  1. package ch7trees;
  2. import ch7trees.BTNode;
  3. import ch7trees.InOrderTraversal;
  4.  
  5. public class BTFromTraversal
  6. {
  7.     //char arr1[], arr2[];
  8.     StringBuffer tree = new StringBuffer();
  9.     static int preIndex;
  10.     public static void main(String... args)
  11.     {
  12.         char in[] = {'D', 'B', 'E', 'A', 'F', 'C'};
  13.         char pre[] = {'A', 'B', 'D', 'E', 'C', 'F'};
  14.         BTNode<Character> root = new BTFromTraversal().makeTree(in, pre, 0, in.length - 1);
  15.         InOrderTraversal.InOrder(root);
  16.     }
  17.    
  18.     BTNode<Character> makeTree(char[] inOrder, char[] preOrder, int inStrt, int inEnd) 
  19.     {
  20.         BTNode<Character> newNode;
  21.         if(inStrt > inEnd)
  22.         {
  23.             return null;
  24.         }
  25.         newNode = new BTNode<Character>();
  26.         newNode.setData(preOrder[preIndex]);
  27.         preIndex++;
  28.         if(inStrt == inEnd) //If this node has no children
  29.             return newNode;
  30.         //Else find index of this node in Inorder traversal
  31.         int inIndex = search(inOrder, inStrt, inEnd, newNode.getData());
  32.         if(inIndex != -1)
  33.         {
  34.             newNode.setLeft(makeTree(inOrder, preOrder, inStrt, inIndex - 1));
  35.             newNode.setRight(makeTree(inOrder, preOrder, inIndex+1, inEnd));
  36.             return newNode;
  37.         }
  38.         else
  39.         {
  40.             System.out.println("Unexpected failure.");
  41.             System.exit(1);
  42.         }
  43.         return null;
  44.     }
  45.    
  46.     static int search(char[] arr, int strt, int end, char value)
  47.     {
  48.       int i;
  49.       for(i = strt; i <= end; i++)
  50.       {
  51.         if(arr[i] == value)
  52.           return i;
  53.       }
  54.       return -1;
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement