: (стек), также известный как стек, представляет собой линейную таблицу с ограниченными операциями. Следуйте принципу «последним пришел — первым обслужен» (LIFO)
: верхняя часть стека : линейный список, который ограничивает операции вставки и удаления только до конца таблицы, и
нижняя часть стека : линейный список, который ограничивает операции вставки и удаления. только в голову.
Нажатие : вставка нового элемента в стек также называется нажатием, нажатием или нажатием. Это помещение нового элемента поверх верхнего элемента стека, что делает его новым верхним элементом стека:
удаление из стека
;Элемент стека также называется выталкиванием или извлечением из стека. Он удаляет верхний элемент стека и делает его соседние элементы новым верхним элементом стека.
что такое процессно-ориентированное:
Процессно-ориентированное — это анализ шагов по решению проблемы, а
затем использование функций
для их реализации. Вам нужно только выполнять и вызывать их шаг за шагом.
- push (element ) добавляет один или несколько элементов на вершину стека
- pop() удаляет верхний элемент и возвращает удаленный элемент
- peek() возвращает элемент на вершину стека
- isEmpty() isEmpty() используется для определения того, является ли стек пустым.
- Clear() используется для очистки элементов стека.
- size() используется для возврата количества элементов в стеке.
Прежде чем его реализовать, давайте подумаем. как мы это реализуем
. Во-первых, мы заимствуем метод массива для его реализации, поэтому нам нужно создать
пустой массив для имитации стека.
для создания класса, использование массива для его моделирования и
написание различных методов в классе
для частичного вызова метода массива.
В общем, метод использования класса для переноса
массива заключается в реализации моделирования стека
класса Stack { конструктор() { этот.элемент = [] } толчок (элемент) { this.item.push(элемент) } поп() { верните этот.item.pop() } заглянуть() { вернуть this.item[this.item.length - 1] } isEmpty() { вернуть this.item.length === 0 } прозрачный() { этот.элемент = [] размер() { вернуть this.item.length } } //Создаем экземпляр класса Stack const stack = new Stack() стек.push(4) стек.push(6) console.log( stack.pop()) console.log(stack.peek()) console.log(stack.isEmpty())Результаты
Console.log(stack.size())
:
объектно-ориентированное:
это разложение вещей, составляющих проблему, на несколько объектов .
Объект создается не для выполнения определенного шага, а для
описания поведения чего-либо в процессе решения проблемы.
- push (element ) добавляет один или несколько элементов на вершину стека
- pop() удаляет верхний элемент и возвращает удаленный элемент
- peek() возвращает элемент на вершину стека
- isEmpty() isEmpty() используется для определения того, является ли стек пустым, пустой — пуст.
- Clear() используется для очистки элементов стека.
- size() используется для возврата количества элементов в стеке.
- toString() используется для печати стека в форме. строки
. Затем при реализации этого класса мы используем объекты для стека моделирования.
class Stack { конструктор() { this.count=0 this.items = {} } толчок (элемент) { this.items[this.count]=элемент это.count++ } поп() { если(this.isEmpty()){ вернуть неопределенное } это.счет-- const result=this.items[this.count] удалить this.items[this.count] вернуть результат } заглянуть() { если(this.isEmpty()){ вернуть неопределенное } вернуть this.items[this.count-1] } isEmpty() { вернуть это.count===0 } прозрачный() { this.items={} this.count=0 } размер() { вернуть это.счет } toString(){ если(this.isEmpty()){ вернуть неопределенное } let objectString=`${this.items[0]}` for(let i=1;i<this.count;i++){ objectString=`${objectString},${this.items[i]}` } вернуть объектную строку } } константный стек = новый стек() стек.push(23) стек.push(34) стек.push(80) console.log( stack.pop()) console.log(stack.peek()) console.log(stack.isEmpty()) console.log(stack.size())Когда
console.log(stack.toString())
использует объекты для имитации стеков, для хранения данных используется ключ:значение
. Например, this.items[this.count]=element использует
this.count для записи в эту структуру. размер стека.
Когда мы вставляем в него число, мы назначаем count в качестве ключа
и вставляем значение в качестве значения. На данный момент вам необходимо изменить this.count++.
Что касается pop() и peek(), метод toString() должен
сначала определить, пуст ли стек. Если он пуст, он вернет неопределенное значение.