Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Работа со стеками асд вариант №3using System; using System.Collections;
namespace lab4_AISD { class Program { // Наша функция static bool WellFormed(string Consistency) { char c; // Объявляем переменную типа Char (символ) Stack s = new Stack(); // Создаем переменную типа Stack (стек)
// Пробегаем циклом по всем символам введенной строки слева направо for (int i = 0; i < Consistency.Length; i++) { // Если встретили открывающую скобку... if ((Consistency[i] == '{') || (Consistency[i] == '[')) s.Push(Consistency[i]); // ...то помещаем ее в стек
// А если встретили закрывающую скобку... else if ((Consistency[i] == '}') || (Consistency[i] == ']')) { // ...и если стек пустой... if (s.Count == 0) { return false; // ...то последовательность не верна, возвращаем ложь }
c = (char)s.Pop(); // ...то достаем данные из стека
// ...и все закрывающие скобки соответствуют скобкам в стеке... if (((c == '{') && (Consistency[i] == '}')) || ((c == '[') && (Consistency[i] == ']'))) continue; // ...то прерываем текущую итерацию (выполнение) и переходим к следующему шагу цикла // ...иначе... else return false; // ...то последовательность не верна, возвращаем ложь } // ...и это другие символы... else continue; // ...то прерываем текущую итерацию и переходим к следующему шагу цикла }
// Если в стеке остались скобки... if (s.Count > 0) return false; // ...то последовательность не верна, возвращаем ложь return true; // ...то последовательность верна, возвращаем истину }
static void Main(string[] args) { string aString; aString = Console.ReadLine(); if (WellFormed(aString)) Console.WriteLine("Последовательность {0} правильна", aString); else Console.WriteLine("Последовательность {0} не правильна", aString); Console.ReadLine(); } } }
/* Описание основных функций класса Stack() * Push() - помещает элемент в стек * Pop() - берет элемент из стека * Peek() - возвращает верхний элемент стека * Contains() - проверяет содержится ли элемент в стеке * Count() - свойство, содержащее количество объектов в очереди */
Автор: Юра Есин (Спецом для СКС-11)
|
||
|
Последнее изменение этой страницы: 2024-06-17; просмотров: 55; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.009 с.) |