-2

そのため、ファイルから国のレコードを読み取るセットアッププログラムがあり、国の3文字の文字表現に基づいてインデックスを作成することを目標としています(例:USA)。6つの並列アレイを使用する必要があります。LeftChPtr、コード、DataRecPtr、およびRightChPtrの3文字の配列。

これは、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++;
            }
4

1 に答える 1

0

LorRを宣言する必要があることを除けば、挿入メソッドに問題があることはわかりません。ファイルに保存するためのコードを確認する必要があるかもしれません。

于 2013-01-08T02:56:45.377 に答える