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

Работа со стеком

11.05.2018, 18:36. Просмотров 1182. Ответов 1
Метки нет (Все метки)

Построить стек целых чисел. Входная последовательность чисел задается пользователем с клавиатуры. Необходимо:
1) распечатать стек,
2) найти и вывести на экран число, входящее в стек максимальное число раз,
3) удалить из стека все нечетные числа и распечатать полученный стек,
4) очистить стек.
подскажите пож-та 2ое задание. 1,2 и 3 сделала а вот 2 не получается(
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2018, 18:36
Ответы с готовыми решениями:

Работа со стеком
Ребят, помогите пожалуйста с заданиями: Задание 1 Реализовать стек списком. Все стандартные...

Работа со стеком.
Интересует вопрос: для использовония функций pop() и push() нужно ли подключать заголовочный файл...

Работа со стеком!
Необходимо записать заполнение стека с клавиатуры. Добавлено через 44 секунды #include...

Работа со СТЕКОМ!!!!!!:)
Создать класс для работы со стеком. Элемент стека – символ. --- Сформировать два стека,содержащие...

1
818 / 621 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
12.05.2018, 11:58 2
Лучший ответ Сообщение было отмечено Aziyana как решение

Решение

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
95
96
#include <iostream>
 
struct node {
    node* next;
    int   val;
};
 
inline bool stack_empty(const node* st) { return (st == NULL); }
inline void stack_init(node*& st){ st = NULL; }
 
void stack_push(node*& st, int val);
void stack_remove(node*& st, bool (*cmp)(int));
void stack_clear(node*& st);
 
bool icmp(int v) { return ((v % 2) != 0); }
 
int main(void){
    node* st;
    stack_init(st);
    for(int i = 1; i < 10; ++i)
        stack_push(st, i);
    stack_push(st, 7);
 
    //1)распечатать стек
    const node* p;
    for(p = st; p != NULL; p = p->next)
        std::cout << p->val << ' ';
    std::cout << std::endl;
 
    //2)найти и вывести на экран число, входящее в стек максимальное число раз
    int k, m = 1;
    const node* sv = NULL;
    for(p = st; p != NULL; p = p->next){
        k = 1;
        for(const node* j = p->next; j != NULL; j = j->next){
            if(j->val == p->val)
                ++k;
        }
 
        if(k > m){
            m  = k;
            sv = p;
        }
    }
 
    if(sv != NULL)
        std::cout << "max rep: " << sv->val << std::endl;
 
    //3)удалить из стека все нечетные числа и распечатать полученный стек, 
    stack_remove(st, &icmp);
    for(p = st; p != NULL; p = p->next)
        std::cout << p->val << ' ';
    std::cout << std::endl;
 
    //4)очистить стек
    stack_clear(st);
    std::cin.get();
    return 0;
}
 
//вставить
void stack_push(node*& st, int val){
    node* p = new node();
    p->val  = val;
    p->next = st;
    st = p;
}
 
//удалить
void stack_remove(node*& st, bool (*cmp)(int)){
    node* t, *p = st, *i = st;
    while(i != NULL){
        if((*cmp)(i->val)){
            t = i->next;
            if(i == st)
                st = st->next;
            else
                p->next = i->next;
            delete i;
            i = t;
        } else {
            p = i;
            i = i->next;
        }
    }
}
 
//очистить
void stack_clear(node*& st){
    node* t;
    while(st != NULL){
        t  = st;
        st = st->next;
        delete t;
    }
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2018, 11:58

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Работа со стеком
Помогите исправить ошибки! Пусть символ # определен в текстовом редакторе как стирающий символ...

Работа со стеком
Задача: Написать программу которая создает стек целых чисел считываемых из файла и удаляет из него...

Работа со стеком
Напишите программу, которая создает стек из 30 элементов, состоящий из чисел Фибоначчи (первый и...

работа со стеком
попалась такая задача: создать стек для положительных и отрицательных чисел. максимальный размер...


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

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

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