Сегодня мы продолжаем узнавать о связанных списках и о нашей цели - написать о классе LinkedList и подключиться к классу Node. Если кто-то только начал с этого блога, я бы порекомендовал прочитать свой первый блог, чтобы понять, где мы сейчас находимся.

Первый блог о «JavaScript. Связанные списки. Что такое «Связанные списки»? Создать API класса узла »



JavaScript.Связанные списки. Что такое «Связанные списки? Создайте API класса узла
Привет новым читателям и добро пожаловать, кто все еще со мной. Сразу хочу отметить, что я перестал писать блоги о… medium.com »



И сегодня мы создаем API класса LinkedList и подключаемся. Давайте начнем

LinkedList Класс

Функция → Конструктор

Возвраты → LinkedList

Направления

Создайте класс для представления связанного списка. При создании связанный список не должен иметь * никакого * головного узла, связанного с ним. Экземпляр LinkedList будет иметь одно свойство, «head», которое является ссылкой на первый узел связанного списка. По умолчанию «head» должен иметь значение «null». Это будет знать только первый узел.

Пример

const list = new LinkedList();
list.head // null

Давайте создадим это в реальном коде:

Код:

class Node{
 constructor(data, next = null){
 this.data = data
 this.next = next
 }
}
class LinkedList {
 constructor(){
 this.head = null;
 }
}
const list = new LinkedList();
list.head = new Node(10)
console.log(list)

Вставить сначала

Функция → InsertFirst с аргументом (данными)

Направления

Создает новый узел из аргумента «data» и назначает полученный узел свойству «head». Обязательно обработайте случай, когда в связанном списке уже есть узел, назначенный свойству «head».

Пример

const list = new LinkedList();
list.insertFirst(‘Hello’);// List has one node

Мы должны вставить новый первый узел. Например, у нас раньше был узел, но мы хотим вставить новый первый узел. Итак, мы меняем добавление нового узла, который становится первым, а второй узел будет старым. Мы не перезаписываем старую, просто продвигаемся на одну позицию.

Не торопитесь, чтобы соединить все точки кода. Я знаю, что это не так просто, но все же это хороший пример того, как это работает. В общем, мы создали новый метод в классе insertFirst с аргументом (данными). Этот метод создает новый узел, заменяет первое место в списке и перемещает старый узел вперед.

Код:

class Node{
 constructor(data, next = null){
 this.data = data
 this.next = next
 }
}
class LinkedList {
 constructor(){
 this.head = null;
 }
 
 insertFirst(data){
 const node = new Node(data, this.head);
 this.head = node;
 }
}
const nodeOne = new Node(5);
const list = new LinkedList();
list.head = nodeOne;
list.insertFirst(10)
console.log(list)

Сегодня мы создали класс LinkedList, а также создали метод insertFirst, который помогает нам вставить новый узел в список. Мы продолжим изучать связанный список, и я буду рад поделиться с вами более подробной информацией о нем.