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

из 2-х стеков в один - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ ВзЛОм ЯщиКА http://www.cyberforum.ru/cpp-beginners/thread165152.html
есть какая нибудь программа с помощью которой можно взломать ящик без проблем?ввел е-майл и готово!
C++ Как вывести корни уравнений на экран? Помогите пожалуйста дописать задачу. Как вывести корни уравнений на экран?? #include <iostream> #include <stdlib.h> #include <windows.h> #include <math.h> using namespace std; /*Написать перегруженные функции для нахождения корней линейного (a*x + b = 0) и квадратного (a*x2+b*x + c = 0) уравнений. Замечание: в функции передаются коэффициенты уравнений. */ http://www.cyberforum.ru/cpp-beginners/thread165137.html
C++ Построения суммы ряда
хотелось бы увидеть приблизительный код для данного задания..
Количество одинаковых цифр, входящих в число C++
прошу помочь. все элементарно, хочу сделать подсчет количества входящих в число одинаковых цифр. например 448080004840840 состоит из 3 цифр. но чтобы считала прога
C++ Нахождения площади треугольника по формуле Герона http://www.cyberforum.ru/cpp-beginners/thread165094.html
Мой код: // нахождение S треугольника по формуле Герона # include "stdafx.h" # include <stdio.h> # include <conio.h> # include <math.h> void main () { float a, b, c, P, S;
C++ Разделение текстового файла на части имеется текстовый файл(ANSI) *.txt очень огромный для латиницы, нужно разделить на файлы типа *.map хотя можно и *.txt поочередно с 1 и далее, до конца читаемого файла. метка для разбиения - "" включая квадратные скобки. допустим файл multimd.txt имеет вид текст текст текст подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
12.09.2010, 12:15     из 2-х стеков в один
Цитата Сообщение от media_kot Посмотреть сообщение
Да нет, спасибо вам за помощь. Если есть стандартные функции зачем изобретать велосипед. Просто ещё мало знаю
Тогда в моем варианте немного не то, что Вам требуется.
В моем варианте исходные стеки имеют наибольший элемент в верхушке. А в результирующем стеке верхушка это наименьший элемент. Изменить несложно.

Вот исправленный вариант с комментариями, если захотите привертеть собственную реализацию, то алгоритм останется таким же.

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
#include <iostream>
#include <stack>
 
int main()
{
    std::stack<int> first;
    std::stack<int> second;
    std::stack<int> result;
    std::stack<int> tmp;
 
    // заполняем первый стек так, чтобы корень был максимальным
    for(int i = 5; i >= 0; --i) {
        first.push(i);
    }
           
    // заполняем второй стек также 
    for(int i = 10; i >= 0; --i) {
        second.push(i + 2);
    }
 
    // переносим элементы в обратном порядке во временный стек
    // пока один из стеков не опустеет
    while(!first.empty() && !second.empty()) {
        if(first.top() < second.top()) {
            tmp.push(first.top());
            first.pop();
        }
        else {
            tmp.push(second.top());
            second.pop();
        }
    }
    
    // переносим оставшиееся элементы из стека
    // так как мы не знаем, в каком стеке еще остались записи, то
    // копируем как бы из обоих (при этом один стек точно уже пустой)
    while(!first.empty()) {
        tmp.push(first.top());
        first.pop();
    }
    
    while(!second.empty()) {
        tmp.push(second.top());
        second.pop();
    }
    
    // чтобы сохранить правильный порядок в результирующем стеке
    // переносим все элементы в новый стек
    // производится как бы реверс стека
    while(!tmp.empty()) {
        result.push(tmp.top());
        tmp.pop();
    }
    
    // вывод результата
    std::cout << "result stack: ";
    while(!result.empty()) {
        std::cout << result.top() << " ";
        result.pop();
    }
}
 
Текущее время: 13:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru