Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 20.02.2019
Сообщений: 19

Присоединить один стек к другому

05.05.2019, 13:36. Показов 2542. Ответов 3

Студворк — интернет-сервис помощи студентам
Задать два стека S1 и S2. Реализовать функцию присоединения S1 к S2.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.05.2019, 13:36
Ответы с готовыми решениями:

Один класс равен другому
Есть вот такая вот лажа: Class A; Class B; Class C=B; A=B Что тут вообще получается? Будет 2 одинаковых класса или как? Такое...

Узнать равен ли один элемент массива другому элементу
Нужно узнать равен ли один элемент массива другому элементу - 1(не порядковый номер в массиве, а порядковый номер в ASCII). Как...

Расстановка восьми ферзей на шахматной доске так, чтобы ни один не угрожал другому
5. Расстановка восьми ферзей на шахматной доске так, чтобы ни один не угрожал другому.

3
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
05.05.2019, 13:55
Владдддд, вот решение:

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
/*
Задать два стека s1 и s2. Реализовать функцию присоединения s1 к s2.
*/
 
#include <iostream> 
#include <stack>
 
    using namespace std;
    
stack<int> f(stack<int> a, stack<int> b) {
    stack<int> c;
    while (!b.empty()) {
        c.push(b.top());
        b.pop();
    }
    while (!a.empty()) {
        c.push(a.top());
        a.pop();
    }
    return c;
}
 
int main() {
    int n, m, el;
    stack<int> s1;
    stack<int> s2;
    stack<int> s;
    cout << "Enter the 1-st stack size:\n";
    cout << "n = ";
    cin >> n;
    cout << "Enter the 1-st queue:\n";
    for (int i = 0; i < n; i++) {
        cin >> el;
        s1.push(el); 
    }
    cout << "Enter the 2-nd stack size:\n";
    cout << "m = ";
    cin >> m;
    cout << "Enter the 2-nd queue:\n";
    for (int i = 0; i < m; i++) {
        cin >> el;
        s2.push(el);
    }
    s = f(s1, s2);
    cout << "Output of the program:\n";
    while (!s.empty()) {
        cout << s.top() << " ";
        s.pop();
    }
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 20.02.2019
Сообщений: 19
05.05.2019, 14:07  [ТС]
Fixer_84, программа работает по принципу очереди. В стеке же первый элемент выводится последним

Добавлено через 53 секунды
Fixer_84, программа работает по принципу очереди. В стеке же первый элемент выводится последним
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
05.05.2019, 14:42
Лучший ответ Сообщение было отмечено Владдддд как решение

Решение

Добавлено через 11 минут
Владдддд, вот программа, где на выходе стек. То, что вы просили:

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
/*
Задать два стека s1 и s2. Реализовать функцию присоединения s1 к s2.
*/
 
#include <iostream> 
#include <stack>
#include <vector>
 
    using namespace std;
    
stack<int> f(stack<int> a, stack<int> b) {
    vector<int> v;
    stack<int> c;
    while (!b.empty()) {
        v.push_back(b.top());
        b.pop();
    }
    while (!a.empty()) {
        v.push_back(a.top());
        a.pop();
    }
    for (auto it = v.rbegin(); it != v.rend(); ++it) {
        c.push(*it);
    }
    return c;
}
 
int main() {
    int n, m, el;
    stack<int> s1;
    stack<int> s2;
    stack<int> s;
    cout << "Enter the 1-st stack size:\n";
    cout << "n = ";
    cin >> n;
    cout << "Enter the 1-st queue:\n";
    for (int i = 0; i < n; i++) {
        cin >> el;
        s1.push(el); 
    }
    cout << "Enter the 2-nd stack size:\n";
    cout << "m = ";
    cin >> m;
    cout << "Enter the 2-nd queue:\n";
    for (int i = 0; i < m; i++) {
        cin >> el;
        s2.push(el);
    }
    s = f(s1, s2);
    cout << "Output of the program:\n";
    while (!s.empty()) {
        cout << s.top() << " ";
        s.pop();
    }
    system("pause");
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.05.2019, 14:42
Помогаю со студенческими работами здесь

Преобразовать один стек в два
Создать стек со случайными целыми числами в диапазоне от 1 до 100 и преобразовать его в два стека. Первый должен содержать только...

выделить место для объекта с помощью new или создать указатель, объект и присвоить один другому. какая разница?
кроме того что к объекту созданному с помощью new можно будет обращаться только через указатель.

Поместить четные элементы в один стек, нечетные - во второй
Дан стек, заполненный целыми числами. Поместить четные элементы в один стек, нечетные - во второй. Решить задачу, используя класс для...

Попытка присоединить почту к другому почтовому ящику
Пришло такое письмо. Получается на мой ящик будет приходить уведомления с чужого ящика - &quot;Google будет отправлять на этот адрес...

Отсоединение потока от одного события и присоединить к другому событию
Здраствуйте как можно сделать такое, у меня есть массив из DispatcherTimer к каждому инедксу привязано событие. Я хочу определённый поток...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru