Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 29
Записей в блоге: 1
1

Изменить порядок следования всех элементов в стеке на противоположный по условию

27.09.2015, 12:30. Показов 1601. Ответов 1
Метки нет (Все метки)

Реализовать стек, в котором к описанию стека добавлена функция turn, которая меняет порядок следования всех элементов в стеке на противоположный. Каждый раз, когда во входной последовательности встречается число 0, то все элементы в стеке должны быть обращены. После обработки всей заданной входной последовательности проверить, элементы стека будут отсортированы по росту, или нет.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2015, 12:30
Ответы с готовыми решениями:

Изменить порядок следования элементов массива на противоположный
Дан числовой одномерный массив C, состоящий из 25 элементов. Изменить порядок следования элементов...

Изменить порядок следования элементов массива на противоположный
Измените порядок следования элементов массива на противоположный.

Изменить порядок следования элементов в одномерном массиве на противоположный
Помогите написать программу, пожалуйста! Дан одномерный массив, состоящий из n вещественных...

Используя указатель на массив целых чисел, изменить порядок следования элементов массива на противоположный
Доброго времени суток, я написал код ,удовлетворяющий условия задачи,однако мне еще незнакома...

1
824 / 627 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
27.09.2015, 13:51 2
Лучший ответ Сообщение было отмечено Miha2059 как решение

Решение

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
 
template<class T>
class tstack {
    struct node {
        T     val;
        node* next;
    };
public:
    node*  lst;
    size_t cnt;
public:
    tstack(void):lst(NULL), cnt(0){}
    ~tstack(){
        this->clear();
    }
public:
    bool push(const T& val){
        node* p = new (std::nothrow) node();
        if(p != NULL){
            p->val  = val;
            p->next = lst;
            lst = p;
            ++cnt;
        }
        return (p != NULL);
    }
 
    void pop(void){
        node* t = lst;
        if(lst != NULL){
            lst = lst->next;
            delete t;
            --cnt;
        }
    }
 
    void clear(void){
        node* t;
        while(lst != NULL){
            t   = lst;
            lst = lst->next;
            delete t;
        }
        cnt = 0;
    }
 
    void turn(void){
        node* t, *p = NULL, *lp = NULL;
        for(p = lst; p != NULL; ){
            t = p;
            p = p->next;
 
            t->next = lp;
            lp      = t;
        }
        if(lp != NULL)
            lst = lp;
    }
 
    bool is_sorted(void) const {
        const node* a = lst;
        const node* b = (lst != NULL) ? lst->next : NULL;
        while(b != NULL){
            if(a->val > b->val)
                return false;
            a = a->next;
            b = b->next;
        }
        return true;
    }
 
    T& top(void) { return lst->val; }
    T& top(void) const { return lst->val; }
    bool empty(void) const { return (lst == NULL); }
    size_t size(void) const { return cnt; }
};
 
int main(void){
    tstack<int> st;
 
    int n;
    while(std::cin >> n){
        if(! n){
            st.turn();
            if(st.is_sorted())
                std::cout << "yes sort." << std::endl;
            else
                std::cout << "not sort!" << std::endl;
        } else
            st.push(n);
    }
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2015, 13:51

Используя указатель на массив целых чисел, изменить порядок следования элементов массива на противоположный
Доброго времени суток, подскажите, пожалуйста,что в моем коде неправильно. #include &lt;iostream&gt;...

Изменить порядок следования слов в тексте на противоположный
1) Реализовать функцию: int calcWordsCount(const char *text, const char *word, int startFrom =...

Во всех последовательностях положительных чисел изменить порядок элементов на противоположный
Размерность массива 100 диапазон от -50 до 50 и вот само задание Во всех последовательностях...

Во всех последовательностях положительных чисел изменить порядок элементов на противоположный
Помогите с данным заданием Во всех последовательностях положительных чисел изменить порядок...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.