Это связанный список:
Итак, изначально, первый (голова на изображении) и последние элементы равны нулю:
this.first = null;
this.last = null;
this.length = 0;
В этот момент оба указывают на ноль.
Если вы добавляете новый элемент, и если last
равен нулю, он знает, что это начальное состояние, что означает, что нет элемент в очереди, поэтому добавьте самый первый элемент в очередь и сделайте так, чтобы first
и last
указывали на один и тот же объект, потому что на данный момент есть только один элемент:
if(this.last === null) {
this.first = temp
this.last = temp
}
Если вы добавите еще один элемент элемент, сначала проверьте, есть ли какой-либо элемент в очереди (проверяя действительность last
) и, если он есть, добавьте его в конец очереди с помощью:
else {
this.last.next = temp
this.last = temp
}
Чтобы объяснить это далее, он делает следующее:
this.last
указывает на последний элемент очереди (по состоянию на момент до добавления нового элемента), поэтому обновляет его свойство next
, чтобы оно указывало на новый элемент. - Затем обновите
this.last
, чтобы он указывал на добавляемый последний последний элемент. - Als о, обратите внимание, что в этот момент его указатель
next
указывает на null
.