これは私がすでに提出した古い宿題の問題によるものですが、私はそれを理解することができませんでした。ユーザー定義クラスを使用して、特定のインデックスのLinkedListから要素を削除しようとしています。以下は私が作業している擬似コードですが、それは私のものと同じパラメーターを持っていないので、それを変更しようとしましたが、問題がありました。私はプログラミング初心者(約6か月の経験)です。参考までに。ArrayListsは問題なく理解できますが、LinkedListsが問題を引き起こしています。
/*
* Remove the nth element in the list. The first element is element 1.
* Return the removed element to the caller.
function remove(List list, Node node)
if node.prev == null
list.firstNode := node.next
else
node.prev.next := node.next
if node.next == null
list.lastNode := node.prev
else
node.next.prev := node.prev
destroy node
*/
私のメソッドは、削除するインデックス位置を入力するようにユーザーに要求します。intとLinkEntryはタイプが異なるため、当然問題が発生します。パラメータを介して渡されるintを組み込む方法がわかりません。
public void remove(int n)
{
LinkEntry<E> remove_this = new LinkEntry<E>();
remove_this.element = n;
for (remove_this = head; remove_this != null; remove_this = remove_this.next)
{
//removes the head if list is only 1 item long
if (head.next == null)
head = remove_this.next;
else
//sets previous element to the next element
remove_this.previous.next = remove_this.next;
//if nothing comes after remove_this, then remove the tail element
if (remove_this.next == null)
tail = remove_this.previous;
else
//sets next previous element to current previous element
remove_this.next.previous = remove_this.previous;
}
}
私が解決しようとしているものにもっと似ている別の例を与える場所を知っているなら、私はそれを本当に感謝します。私は自分のテキストとオンラインを調べましたが、運がありません。