2013-01-07 57 views
-2

所以我有一个安装程序从一个文件中读取国家记录,我的目标是根据一个国家(例如美国)的3个字母表示进行索引。我需要使用6个并行阵列。 LeftChPtr,代码的3个字符数组,DataRecPtr和RightChPtr。二进制搜索树插入问题(Java)

下面是它在DataRecPtr中发送的方法InsertCode和数组中的3个字符。

插入所有的数据后,它被保存到一个文件,当我看着文件,我可以告诉它是错误的,因为指针是不正确的。

请帮助,我绝不会要求你为我写代码我只是没有看到问题。 感谢

N = 0 
rootPtr = -1 
parentI = 0; 


    public void InsertCode(short ID, char[] cc) 
      { 
       drp = ID; 
       short i; 
       codeArray1[N] = cc[0]; 
       codeArray2[N] = cc[1]; 
       codeArray3[N] = cc[2]; 
       leftChPtr[N] = -1; 
       rightChPtr[N] = -1; 
       dataRecPtr[N] = drp; 

       if (rootPtr == -1) //special case - no nodes in BST yet 
        rootPtr = N; 
       else //normal case 
       { 
        i = rootPtr; 
        String dataN = ""; 
        dataN += codeArray1[N] + codeArray2[N] + codeArray1[N]; 

        while (i != -1) 
        { parentI = i; 
         String dataI = ""; 
         dataI += codeArray1[i] + codeArray2[i] + codeArray3[i]; 

         if (dataN.compareTo(dataI) < 0) 
         { 
          i = leftChPtr[i]; 
          LorR = true;//L 
         } 
         else 
         { 
          i = rightChPtr[i]; 
          LorR = false;//R 
         } 
        }     
        //i++;????????????????? 

       if (LorR == true) 
        leftChPtr[parentI] = N; 
       else 
        rightChPtr[parentI] = N; 
       } 
       N++; 
      } 

回答

0

看不出什么毛病insert方法除了LORR应该声明。也许你应该检查保存到文件中的代码。