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

Что ж, давайте попробуем подробно разобраться в некоторых передовых концепциях структуры данных, таких как Stack & Queue.

Зачем нужна структура данных?

Данные - это все. Какой-то эксперт говорит: «Если у вас есть данные, вы, возможно, будете мировым лидером». Представьте себе технологический рост Google, Facebook, Amazon, которые на самом деле возглавляют технологическую отрасль. Какова причина? На самом деле у них много данных.

Ну, каким-то образом вы получаете много данных через свой стартап или что-то в этом роде. Здесь возникают вопросы: как вы управляете, обрабатываете или храните свои данные? Фактически, в этой ситуации эксперт по информатике изобрел концепцию структуры данных, и она обновляется день ото дня. Итак, это обязательная тема для изучения, если вы хотите стать экспертом по программированию.

Куча

Прежде всего, очень важно знать, что такое стек? Посмотрите, пожалуйста, на пример.

Здесь несколько чаш складываются в стопку. Таким образом, в этом состоянии последний элемент, помещенный в стек, будет удален первым. Вот почему «стек» работает с механизмом «последним пришел - первым ушел» (LIFO). Один из лучших примеров - кнопка «Назад» в веб-браузерах. Каждая просматриваемая страница добавляется в стек, и когда вы нажимаете кнопку «Назад», текущая страница (последняя добавленная) выталкивается из стека.

Что ж, давайте сосредоточимся на некоторых примерах кодирования. Начнем с базового стека. Сделайте код палиндрома, по сути, это означает, что он читает то же самое назад и вперед, как мадам, racecar.

Послушайте, у нас есть 3 переменные, такие как буквы как пустая строка, слово и «rword». В этом коде у нас есть два цикла for. Во-первых, вставляем переменную word в массив букв. Теперь значение буквы - [‘m’, ‘a’, ‘d’, ‘a’, ‘m’]. По сути, второй цикл for работает с перевернутым словом с переменной «rword» методом pop. Напоследок мы просто условно проверили - палиндром это или нет? Теперь посмотрим на более подробный пример стека.

Давайте сделаем этот стек с помощью кода JavaScript. Что ж, мы должны создать функцию, и внутри функции есть методы push, pop, size, peek для выполнения нашего стека.

let Stack = function() {
    this.count = 0;
    this.storage = {};
}

В теле этой функции «Stack» есть две локальные переменные, такие как count и storage. Подсчет помогает перемещаться по нашему стеку, а хранилище помогает нам хранить данные в стеке. Давайте сделаем push-функцию в теле функции «Stack».

// Adds value to the end of the stack
this.push = function(value) {
    this.storage[this.count] = value;
    this.count++;
}

Функция «Push» добавляет значение в конец стека. После добавления значения в стек count ++ указывает, что я готов сохранить следующий стек.

// Removes and returns the value at the end of the stack
this.pop = function(){
    if(this.count === 0){
    return undefined;
}
this.count--
let result = this.storage[this.count];
delete this.storage[this.count];
console.log(result);
return result;
}

Первоначально, когда длина стека равна «0», возвращается «undefined». В противном случае на следующем шаге будет удален последний элемент стека.

this.size = function() {
    return this.count;
}
// Returns the value at the end of the stack
this.peek = function() {
    return this.storage[this.count -1];
}

Эти два метода очень просты. Первый - это общий размер стека, а второй возвращает значение в конце стека. Итак, последний код:

Очередь

Здесь саспенс…

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