Preordonați-vă postului în copac

Am o întrebare vreau să creeze postorder de la inorder și preorder, dar eu nu folosesc wana reconstrucție de copac, vreau doar recursiv face acest lucru. I cod acest lucru, și în acest moment, eu am o parte din, partea dreaptă a copacului în preorder (primul char în preorder este rădăcină, am găsi acest lucru în inorder, și am partea stanga si dreapta, i recurency traduce în partea dreaptă) , dar am o problemă cu partea stângă a copacului. Nu am idee să fac asta. Poate cineva să-mi dea ceva sugestie sau cod? Te rog ajuta-ma :)

0
oh am uitat, am preorder si inorder de la doua String;)
adăugat autor pkruk, sursa
Hm exemplul și codul meu:
adăugat autor pkruk, sursa
Arătați ce aveți.
adăugat autor n.m., sursa
este copacul tău copac binar?
adăugat autor ControlAltDel, sursa
Un exemplu ar fi probabil de ajutor.
adăugat autor biziclop, sursa

1 răspunsuri

 public static String a(String pre, String in, int start, int end) {
            char c = pre.charAt(start); //first char in preorder is root
            int ix = find(pre, in, c);//if we find this char in inorder translation we know where is left and right side of tree
            stack += c;
            if (start == 0 && flaga == true) {
                left = pre.substring(1, ix + 1);
                right = pre.substring(ix + 1, end);
                flaga = false;
                return a(right, in, 0, end);
            }
            String reverse = new StringBuffer(stos).reverse().toString();
    //stack to see
//        System.out.println("STACK " + stos);
            if (start < right.length()-1) {
                return a(right, in, start + 1, end - 1);
            }
            return ""; 
     }
    public static int find(String a, String b, char c) {
        int b_l = b.length();
        for (int i = 0; i < b_l; ++i)
            if (b.charAt(i) == c)
                return i;
        return -1;

Primul test: String pre = "FBADCEGIH"; String inorder = "ABCDEFGHI"; Răspunsul trebuie să fie://A, C, E, D, B, H, I, G, F Problema mea este cu partea stângă a copacului, nu am idee să fac acest lucru corect și nu sunt sigur că codul meu funcționează pentru toate situațiile de preorder și inorder.

0
adăugat