Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ch7trees;
- import ch7trees.BTNode;
- import ch7trees.InOrderTraversal;
- public class BTFromTraversal
- {
- //char arr1[], arr2[];
- StringBuffer tree = new StringBuffer();
- static int preIndex;
- public static void main(String... args)
- {
- char in[] = {'D', 'B', 'E', 'A', 'F', 'C'};
- char pre[] = {'A', 'B', 'D', 'E', 'C', 'F'};
- BTNode<Character> root = new BTFromTraversal().makeTree(in, pre, 0, in.length - 1);
- InOrderTraversal.InOrder(root);
- }
- BTNode<Character> makeTree(char[] inOrder, char[] preOrder, int inStrt, int inEnd)
- {
- BTNode<Character> newNode;
- if(inStrt > inEnd)
- {
- return null;
- }
- newNode = new BTNode<Character>();
- newNode.setData(preOrder[preIndex]);
- preIndex++;
- if(inStrt == inEnd) //If this node has no children
- return newNode;
- //Else find index of this node in Inorder traversal
- int inIndex = search(inOrder, inStrt, inEnd, newNode.getData());
- if(inIndex != -1)
- {
- newNode.setLeft(makeTree(inOrder, preOrder, inStrt, inIndex - 1));
- newNode.setRight(makeTree(inOrder, preOrder, inIndex+1, inEnd));
- return newNode;
- }
- else
- {
- System.out.println("Unexpected failure.");
- System.exit(1);
- }
- return null;
- }
- static int search(char[] arr, int strt, int end, char value)
- {
- int i;
- for(i = strt; i <= end; i++)
- {
- if(arr[i] == value)
- return i;
- }
- return -1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement