Форум программистов, компьютерный форум CyberForum.ru

Как описать стек в котором будут лежать знаки орифметич операций? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Метод отражений http://www.cyberforum.ru/cpp-beginners/thread1000489.html
Помогите пожалуйста решит задачу по методу отражений, заранее спасибо!!
C++ КуР-алгоритм поиска собственных значенийдля почти треугольной матрицы! QR-алгоритм поиска собственных значенийдля почти треугольной матрицы! Помогите написать, а лучше сами напишите прогу на чистом С с одномерным массивом! ПЛЗ!! Срочно, решается жизнь... Добавлено через 1 час 15 минут АППППППП http://www.cyberforum.ru/cpp-beginners/thread1000486.html
Метод Гаусса решения линейной системы для ленточной матрицы C++
Помогите с задачей ребята!
C++ Метод ортогонализации
Помогите с задачей
C++ Регулярное выражение http://www.cyberforum.ru/cpp-beginners/thread1000468.html
Добрый день! Помогите расшифровать регулярное выражение, что оно ищет. (;.*|.*|)+
C++ Прогресс выполнения быстрой сортировки хочу написать простой консольный прогресс бар, отображающий ход выполнения быстрой сортировки, но не могу найти за что "зацепиться" то есть к чему привязать прогресс выполнения (т.к. к количеству посортированных елементов тут привязать не получится). есть ли у этого алгоритма какие то другие меры хода выполнения (например считать глубину рекурсии и т.п.)? подробнее

Показать сообщение отдельно
kondusov
2 / 2 / 0
Регистрация: 01.06.2013
Сообщений: 153
07.11.2013, 13:19  [ТС]     Как описать стек в котором будут лежать знаки орифметич операций?
пробую написать простенькую программу которая из инфиксной записи выражения сделает постфиксную
вывожу входную строку - всё ок.
вывожу выход - она пустая. почему так получается?

цифры используются и знаки
цифры беру от нуля до девяти(для простоты)
kol подсчтывать должна количество данных помещённых в стек


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
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <string>
 using namespace std;
struct stek
{
    char d;
    struct stek *next; // указатель на следующий элемент списка (стека)
};
 
 
void push(stek* &next, int d)
{
    stek *pv = new stek;      // объявляем новую динамическую переменную типа stek
    pv->d = d;                // записываем  значение, которое помещается в стек
    pv->next = next;          // связываем новый элемент стека с предыдущим
    next = pv;                // новый элемент стека становится его вершиной
}
 
char pop(stek* &next)
{  
    char temp = next->d;     // извлекаем в переменную temp значение в вершине стека
    stek *pv = next;        // запоминаем указатель на вершину стека, чтобы затем
                            // освободить выделенную под него память
    next = next->next;      // вершиной становится предшествующий top элемент
    delete pv;              // освобождаем память, тем самым удалили вершину
    
    return temp;          // возвращаем значение, которое было в вершине
}
int kol;
int main()
{
    string s, otvet;
    stek*p=0;
 
 
getline(cin, s);
 
cout<<"\n vashe virazhenie v obi4noy zapisi :"<<s<<"\n";
for(int i=0;i<10;i++)
    {
        if ('s[i]'>'0'  &&  's[i]'<'10')
        otvet+=s[i];
            if ('s[i]'=='+' || 's[i]'=='-' ||'s[i]'=='*' || 's[i]'=='/'){
            push (p,s[i]);
            kol++;
        }}
for (int i=0;i<kol;i++){
    otvet+=pop(p);}
cout<<'\n'<<"POSTFIKS ---       "<<otvet;
return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru