0
リンクリストの先頭に新しいノードを挿入する必要があります。私がデータパッケージを交換した後、私は最初のノードのデータを新しいデータで上書きしようとします。しかし、私がそれを行うと、私のプログラムは私の第1と第2のノードのデータ値を変更します。リンクリストの先頭にノードを挿入する
void insert(String iv_name, String iv_name_first, String iv_title, int iv_earning) {
if (this.first == null) {
this.first = new Node(new Data(iv_name, iv_name_first, iv_title, iv_earning, 0));
} else {
Node n = this.first;
Data last_n_data = getLast().data;
Data[] datas = new Data[getLast().data.getId()];
int j = 0;
while (n.next != null) {
datas[j] = n.data;
j++;
n = n.next;
}
j = 0;
n = this.first;
while (n.next != null) {
n.next.data = datas[j];
n.next.data.setId(datas[j].getId() + 1);
j++;
n = n.next;
}
n.next = new Node(new Data(last_n_data.getName_last(), last_n_data.getName_first(), last_n_data.getTitle(),
last_n_data.getEarning(), last_n_data.getId() + 1));
n.next.next = null;
this.first.data.setName_last(iv_name);
this.first.data.setName_first(iv_name_first);
this.first.data.setTitle(iv_title);
this.first.data.setEarning(iv_earning);
this.first.data.setId(0);
}
}
'Data':' void insert(Data data) '。このコードは 'if-else'を削除して' toCreate.next = this.first; 'と' this.first = toCreate; 'の2つの行を保持するとうまく動作します。 –
彼のコードの外観から、 'Node()'コンストラクタは 'Node'の内部に' Data'オブジェクトを設定することをすでに処理しています。あなたはif文について正しいです。 – nhouser9