С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 27.05.2014
Сообщений: 21
1

Переписать готовую программу

21.05.2015, 19:47. Показов 779. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Реализовала программу с помощью готового шаблона стека.Но необходимо её переделать,используя lifo.h.Нигде об этом нет подробной информации.Помогите,пожалуйста.Само задание прикрепила.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <vector>
using namespace std; 
vector<int> stack; // стек для хранения непарных скобок
 
int main() {
    char Str[100000]={0}; // строка, которую будем разбирать
    cin>>Str; // считываем строку скобок
    char *str=Str; 
    int flag=true;
    
    if(*str!=')'&&*str!=']'&&*str!='}') stack.push_back(*str); // записываем первый элемент в стек, если это открывающая скобка
    else {cout<<"NO";flag=false;} // в противном случае выводим сообщение
    
    for(;*++str!='\0'&&flag;) { // цикл по всех элементах строки
        switch(*str) { 
        case '(': 
        case '[':
        case '{':
            stack.push_back(*str); // если открывающая скобка - записываем ее в стек
            break;
        case ')':
            if(*stack.rbegin()=='(') stack.pop_back(); // если скобка закрывающая и сверху в стеке соответственная
            else {cout<<"NO"; flag=false;}               // открывающая скобка то открывающая скобка выталкивается
            break;                                               // из стека, в противном случае выводится сообщение
        case ']':
            if(*stack.rbegin()=='[') stack.pop_back();
            else {cout<<"NO"; flag=false;}
            break;
        case '}':
            if(*stack.rbegin()=='{') stack.pop_back();
            else {cout<<"NO"; flag=false;}
            break;
        }
    }
    if(stack.empty()&&flag) cout<<"YES"; // если вконце стек пуст и небыло других проблем значит структура правильная
    else if(flag)cout<<"NO"; // в противном случае не правильная
}
Миниатюры
Переписать готовую программу  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2015, 19:47
Ответы с готовыми решениями:

переписать готовую программу
Есть готовая программа,которая работает. Пример вводишь числа 5 и 1 выводит 1 2 3 4 5 Второй тест...

Переписать готовую функцию более элегантно
Мое понимание элегантной функции: записано наиболее коротко, понятно, ничего лишнего, работает...

Изменить готовую программу
Нужно изменить подпрограмму с function на Procedure function fac(x:real;n:integer):real; begin...

Переделать готовую программу
Нада переделать так что бы действия выполнялись в функции мейн.в реторне выполнялось само...

1
Эксперт С++
8483 / 6150 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.05.2015, 12:56 2
Цитата Сообщение от Mishe Посмотреть сообщение
помощью готового шаблона стека.
Может std::stack<> ?
0
26.05.2015, 12:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2015, 12:56
Помогаю со студенческими работами здесь

Ищу готовую программу БД
Здравствуйте! Уважаемые IT-шники, ищу небольшую программу готовую ну или не готовую, для того...

Рассчитать готовую программу
Здравствуйте! Есть программа, но не хватает мощности ПК вычислить ее, маткад ругается на недостаток...

сохранить готовую программу
Как сохранить готовую программу в формате .exe

Запустить готовую программу из программы
Доброго времени суток, Задача такова: нужно как-то &quot;склеить&quot; два файла, т.е. &quot;засунуть&quot; файл в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru