Как должно быть известно большинству читателей,стекпредставляет собой список, действующий по принципу "первым пришел — последним обслужен". Этот принцип действия стека можно наглядно представить на примере горки тарелок, стоящих на столе. Первая тарелка, поставленная в эту горку, извлекается из нее последней. Стек относится к одним из самых важных структур данных в вычислительной технике. Он нередко применяется, среди прочего, в системном программном обеспечении, компиляторах, а также в программах отслеживания в обратном порядке на основе искусственного интеллекта

Класс коллекции, поддерживающий стек, носит названиеStack.В нем реализуются интерфейсыICollection, IEnumerableиICloneable.Этот класс создает динамическую коллекцию, которая расширяется по мере потребности хранить в ней вводимые элементы. Всякий раз, когда требуется расширить такую коллекцию, ее емкость увеличивается вдвое.

В классеStackопределяются следующие конструкторы.

public Stack()

public Stack(intinitialCapacity)public Stack(ICollectioncol)

В первой форме конструктора создается пустой стек, во второй форме — пустой стек, первоначальный размер которого определяет первоначальная емкость, задаваемая параметромinitialCapacity,ив третьей форме — стек, содержащий элементы указываемой коллекцииcol.Его первоначальная емкость равна количеству указанных элементов.

В классеStackопределяется ряд собственных методов, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Некоторые из наиболее часто используемых методов этого класса приведены в табл. 25.7. Эти методы обычно применяются следующим образом. Для того чтобы поместить объект на вершине стека, вызывается методPush(). А для того чтобы извлечь и удалить объект из вершины стека, вызывается методPop(). Если же объект требуется только извлечь, но не удалить из вершины стека, то вызывается методРеек(). А если вызвать методPop() илиРеек(), когда вызывающий стек пуст, то сгенерируется исключениеInvalidOperationException.

Таблица 25.7. Наиболее часто используемые методы, определенные в классе Stack

Метод

Описание

public virtual void Clear ()

public virtual bool Contains (objectobj)

public virtual object Peek()

public virtual object Pop()

public virtual void Push (objectobj)public static Stack Synchronized(Stackstack)

public virtual object[] ToArray()

Устанавливает свойство Count равным нулю, очищая, по существу, стек

Возвращает логическое значение true, если объект obj содержится в вызывающем стеке, а иначе — логическое значение false Возвращает элемент, находящийся на вершине стека, но не удаляет его

Возвращает элемент, находящийся на вершине стека, удаляя его по ходу дела Помещает объект obj в стек

Возвращает синхронизированный вариант коллекции типа Stack, передаваемой в качестве параметра stack

Перейти на страницу:

Похожие книги