整数がアプリに供給され、整数がハッシュされてから配列に配置される割り当てに取り組んでいます。配列内の各位置は、私が作成したリンク リストです。私の問題は、整数が配置される配列内の位置を指定できないように見えることです。現在、私の出力は、null である位置 10 を除く配列内のすべての場所に配置される最後の 5 つの整数です。どんな助けでも大歓迎です。ありがとうございました。
public class MyHashTab {
private static MyList last;
private static MyList first;
public MyHashTab(int initialCapacity, MyList[] anArray) {
}
public static void insert(int searchKey, MyList[] anArray) {
int hash = searchKey % anArray.length;
MyList current = new MyList(searchKey);
current.next = null;
if (anArray[hash] == null) {
current.next = null;
first = current;
last = current;
anArray[hash] = current;
} else {
last.next = current;
last = current;
}
}
public static void printHash(MyList[] anArray) {
System.out.println("The generated hash table with separate chaining is: ");
for (int i = 0; i < anArray.length; i++) {
if (anArray[i] == null) {
System.out.println("\nThe items for index[" + i + "]: ");
i++;
}
System.out.print("\nThe items for index[" + i + "]: ");
MyList temp = first;
while (temp != null) {
System.out.print(temp.iData + "\t");
temp = temp.next;
}
}
}
}
public class MyList {
int iData; // This integer is used as a key value, and as a way to see the actual node instead of it's memory address.
MyList next; // This is a pointer to a nodes right child.
public MyList(int searchKey) {
this.iData = searchKey;
}
}
問題は26行目から始まるelseステートメントにあると思います。新しい整数部分を作成するリンクリストを割り当てていません。正しい書き方はありますか?
anArray[hash].last.next = current;
anArray[hash].last = current;
if ステートメントと else ステートメントの両方に print ステートメントを追加し、両方を使用しています。ありがとうございました。
出力
The generated hash table with separate chaining is:
The items for index[0]: 366 976 312 244 655
The items for index[1]: 366 976 312 244 655
The items for index[2]: 366 976 312 244 655
The items for index[3]: 366 976 312 244 655
The items for index[4]: 366 976 312 244 655
The items for index[5]: 366 976 312 244 655
The items for index[6]: 366 976 312 244 655
The items for index[7]: 366 976 312 244 655
The items for index[8]: 366 976 312 244 655
The items for index[9]: 366 976 312 244 655
The items for index[10]:
The items for index[11]: 366 976 312 244 655
予想される出力は次のようになります。別々のチェーンで生成されたハッシュ テーブルは次のとおり
です。 インデックス [0] のアイテム: 36 60 108 312
インデックス [1] のアイテム: 85
インデックス [2] のアイテム: 290 422
インデックス [3] のアイテム: 99 135
索引 [4] の項目: 76 148 244 568 976
索引 [5] の項目: 29 173 245
索引 [6] の項目: 366
索引 [7] の項目: 619 655 703
索引 [8] の項目]: 56
索引 [9] の項目: 345
索引 [10]
の項目: 索引 [11] の項目: 23 47
ハッシュされた後、適切な位置に配列リストに配置された各整数。