Advertisement
Guest User

za guygenius prva i treta

a guest
Dec 15th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.03 KB | None | 0 0
  1. ///////////////// prva
  2. SLLNode<String> jazol = tree.root;
  3.         for (i=0;i<N;i++) {
  4.             String [] tmp = commands[i].split(" ");
  5.             if(tmp[0].equals("CREATE")){
  6.                 SLLNode<String> temp = jazol.firstChild;
  7.                 if (temp == null || (temp.element.compareTo(tmp[1]) > 0)) {
  8.                     tree.addChild(jazol,tmp[1]);
  9.                 }
  10.                 else  {
  11.                     SLLNode<String> ins = new SLLNode(tmp[1]);
  12.                     while (temp.sibling != null) {
  13.                         if (tmp[1].compareTo(temp.sibling.element) < 0) {
  14.                             ins.sibling = temp.sibling;
  15.                             temp.sibling = ins;
  16.                             ins.parent = jazol;
  17.                             break;
  18.                         }
  19.                         temp = temp.sibling;
  20.                     }
  21.                     ins.parent = jazol;
  22.                     temp.sibling = ins;
  23.                 }
  24.             }
  25.             else if(tmp[0].equals("OPEN")) {
  26.                 SLLNode<String> izmini = jazol.firstChild;
  27.                 while(izmini!=null) {
  28.                     if(izmini.element.equals(tmp[1])) {
  29.                         jazol = izmini;
  30.                         break;
  31.                     }
  32.                     izmini = izmini.sibling;
  33.                 }
  34.             }
  35.             else if(tmp[0].equals("DELETE")) {
  36.                 SLLNode<String> izmini = jazol.firstChild;
  37.                 while(izmini!=null) {
  38.                     if(izmini.element.equals(tmp[1])) {
  39.                         tree.remove(izmini);
  40.                         break;
  41.                     }
  42.                     izmini = izmini.sibling;
  43.                 }
  44.             }
  45.             else if(tmp[0].equals("BACK")) {
  46.                 jazol = jazol.parent;
  47.             }
  48.             else if(tmp[0].equals("PATH")) {
  49.                 String [] niza = new String[100];
  50.                 SLLNode<String> temp = jazol;
  51.                 int x=0;
  52.                 while(temp!=tree.root) {
  53.                     niza[x] = temp.element;
  54.                     x++;
  55.                     temp = temp.parent;
  56.                 }
  57.                 niza[x] = tree.root.element;
  58.                 for (int q=x;q>=0;q--) {
  59.                     System.out.print(niza[q] + "\\");
  60.                 }
  61.                 System.out.println();
  62.                
  63.             }
  64.             else if(tmp[0].equals("PRINT")) {
  65.                 tree.printTree();
  66.             }
  67.         }
  68.  
  69. //////////////////////////// treta
  70. import java.io.BufferedReader;
  71. import java.io.InputStreamReader;
  72. import java.util.StringTokenizer;
  73.  
  74. class BNode<E> {
  75.    
  76.     public E info;
  77.     public BNode<E> left;
  78.     public BNode<E> right;
  79.    
  80.     static int LEFT = 1;
  81.     static int RIGHT = 2;
  82.    
  83.     public BNode(E info) {
  84.         this.info = info;
  85.         left = null;
  86.         right = null;
  87.     }
  88.    
  89.     public BNode() {
  90.         this.info = null;
  91.         left = null;
  92.         right = null;
  93.     }
  94.    
  95.     public BNode(E info, BNode<E> left, BNode<E> right) {
  96.         this.info = info;
  97.         this.left = left;
  98.         this.right = right;
  99.     }
  100.    
  101. }
  102.  
  103. class BTree<E extends Comparable<E>> {
  104.    
  105.     public BNode<E> root;
  106.    
  107.     public BTree() {
  108.         root = null;
  109.     }
  110.    
  111.     public BTree(E info) {
  112.         root = new BNode<E>(info);
  113.     }
  114.    
  115.     public void makeRoot(E elem) {
  116.         root = new BNode(elem);
  117.     }
  118.    
  119.     public void makeRootNode(BNode<E> node) {
  120.         root = node;
  121.     }
  122.    
  123.     public BNode<E> addChild(BNode<E> node, int where, E elem) {
  124.        
  125.         BNode<E> tmp = new BNode<E>(elem);
  126.        
  127.         if (where == BNode.LEFT) {
  128.             if (node.left != null)  // veke postoi element
  129.                 return null;
  130.             node.left = tmp;
  131.         } else {
  132.             if (node.right != null) // veke postoi element
  133.                 return null;
  134.             node.right = tmp;
  135.         }
  136.        
  137.         return tmp;
  138.     }
  139.    
  140.     public BNode<E> addChildNode(BNode<E> node, int where, BNode<E> tmp) {
  141.        
  142.         if (where == BNode.LEFT) {
  143.             if (node.left != null)  // veke postoi element
  144.                 return null;
  145.             node.left = tmp;
  146.         } else {
  147.             if (node.right != null) // veke postoi element
  148.                 return null;
  149.             node.right = tmp;
  150.         }
  151.        
  152.         return tmp;
  153.     }
  154.    
  155.     public BNode<Integer> findTree(BNode<Integer> jazol,int baranaVrednost) {
  156.         BNode<Integer> najden = null;
  157.         if(jazol==null)
  158.             return null;
  159.         if(jazol.info==baranaVrednost)
  160.             return jazol;
  161.         if (jazol.left!=null)
  162.             najden = findTree(jazol.left,baranaVrednost);
  163.         if(najden==null)
  164.             najden = findTree(jazol.right,baranaVrednost);
  165.         return najden;
  166.     }
  167.  
  168. }
  169.  
  170. public class BinaryTreeSum {
  171.    
  172.  
  173.     public static void main(String[] args) throws Exception {
  174.         int i, j, k;
  175.         int index;
  176.         String action;
  177.        
  178.         String line;
  179.  
  180.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  181.         StringTokenizer st;
  182.  
  183.         int N = Integer.parseInt(br.readLine());
  184.  
  185.         BNode<Integer> nodes[] = new BNode[N];
  186.         BTree<Integer> tree = new BTree<Integer>();
  187.        
  188.         for (i=0;i<N;i++)
  189.             nodes[i] = new BNode<Integer>();
  190.        
  191.         for (i = 0; i < N; i++) {
  192.             line = br.readLine();
  193.             st = new StringTokenizer(line);
  194.             index = Integer.parseInt(st.nextToken());
  195.             nodes[index].info = Integer.parseInt(st.nextToken());
  196.             action = st.nextToken();
  197.             if (action.equals("LEFT")) {
  198.                 tree.addChildNode(nodes[Integer.parseInt(st.nextToken())], BNode.LEFT, nodes[index]);
  199.             } else if (action.equals("RIGHT")) {
  200.                 tree.addChildNode(nodes[Integer.parseInt(st.nextToken())], BNode.RIGHT, nodes[index]);    
  201.             } else {
  202.                 // this node is the root
  203.                 tree.makeRootNode(nodes[index]);
  204.             }
  205.         }
  206.  
  207.         int baranaVrednost=Integer.parseInt(br.readLine());
  208.        
  209.         br.close();
  210.        
  211.         // vasiot kod ovde
  212.         int sum=0;
  213.         BNode<Integer> novkoren = tree.findTree(tree.root, baranaVrednost);
  214.         sum=recursiveTree(novkoren.left,baranaVrednost);
  215.         System.out.print(sum + " ");
  216.         sum=recursiveTree2(novkoren.right,baranaVrednost);
  217.         System.out.print(sum);
  218.     }
  219.    
  220.    
  221.     public static int recursiveTree(BNode<Integer> jazol,int baranaVrednost) {
  222.         if(jazol!=null) {
  223.             if(jazol.info<baranaVrednost)
  224.                 return jazol.info + recursiveTree(jazol.left,baranaVrednost) + recursiveTree(jazol.right,baranaVrednost);
  225.             else
  226.                 return recursiveTree(jazol.left,baranaVrednost) + recursiveTree(jazol.right,baranaVrednost);   
  227.         }
  228.         else
  229.             return 0;
  230.     }
  231.     public static int recursiveTree2(BNode<Integer> jazol,int baranaVrednost) {
  232.         if(jazol!=null) {
  233.             if(jazol.info>baranaVrednost)
  234.                 return jazol.info + recursiveTree2(jazol.left,baranaVrednost) + recursiveTree2(jazol.right,baranaVrednost);
  235.             else
  236.                 return recursiveTree2(jazol.left,baranaVrednost) + recursiveTree2(jazol.right,baranaVrednost); 
  237.         }
  238.         else
  239.             return 0;
  240.     }
  241. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement