Читаем C# 4.0 полное руководство - 2011 полностью

Несмотря на то что для реализации стека достаточно методов Push и Pop , полезными могут оказаться и другие методы. Поэтому в классе Stack определены еще четыре метода: IsFull , IsEmpty , Capacity и GetNum . Эти методы предоставляют всю необходимую информацию о состоянии стека и приведены ниже.

return tos;

}

Метод IsFull возвращает логическое значение true, если стек заполнен, а иначе — логическое значение false. Метод IsEmpty возвращает логическое значение true, если стек пуст, а иначе — логическое значение false. Для получения общей емкости стека (т.е. общего числа элементов, которые могут в нем храниться) достаточно вызвать методCapacity, а для получения количества элементов, хранящихся в настоящий момент в стеке, — методGet Num . Польза этих методов состоит в том, что для получения информации, которую они предоставляют, требуется доступ к закрытой переменнойtos.Кроме того, они служат наглядными примерами организации безопасного доступа к закрытым членам класса с помощью открытых методов.

Конкретное применение классаStackдля реализации стека демонстрируется в приведенной ниже программе.

// Продемонстрировать применение класса Stack, using System;

// Класс для хранения символов в стеке, class Stack {

// Эти члены класса являются закрытыми, char[] stck; // массив, содержащий стек int tos;    // индекс вершины стека

// Построить пустой класс Stack для реализации стека заданного размера, public Stack(int size) {

stck = new char[size]; // распределить память для стека tos = 0;

}

// Поместить символы в стек, public void Push(char ch) { if(tos==stck.Length) {

Console.WriteLine (" - Стек заполнен."); return;

}

stck[tos] = ch; tos++;

}

// Извлечь символ из стека, public char Pop    {

if(tos==0)    {

Console.WriteLine(" - Стек пуст."); return (char) 0;

}

tos — ;

return stck[tos];

}

// Возвратить значение true, если стек заполнен, public bool IsFullO { return tos==stck.Length;

}

// Возвратить значение true, если- стек пуст, public bool IsEmptyO {

return tos==0;

}

// Возвратить общую емкость стека, public int Capacity    {

return stck.Length;

}

// Возвратить количество объектов, находящихся в данный момент в стеке, public int GetNum { return tos;

}

}

class StackDemo {

static void Main    {

Stack    stkl    =    new    Stack (10);

Stack    stk2    =    new    Stack(lO);

Stack    stk3    =    new    Stack(10);

char ch; int i;

// Поместить ряд символов в стек stkl.

Console.WriteLine("Поместить символы А-J в стек stkl."); for(i=0; !stkl.IsFull; i++) stkl.Push((char)    ('A1    +    i));

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

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

Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT