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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 51, средняя оценка - 4.73
media_kot
1 / 1 / 0
Регистрация: 12.09.2010
Сообщений: 35
#1

Сортировка стека - C++

14.09.2010, 23:39. Просмотров 6797. Ответов 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
58
59
60
61
62
#include "stdafx.h"
#include "iostream"
#include "stack"
 
using namespace std;
int main()
{
    setlocale(LC_ALL,"Russian");
 
    stack<int> first;
    stack<int> third;
    stack<int> second;
    stack<int> fourth;
    stack<int> result;
    stack<int> tmp;
 
     int k=0;
    cout <<"Первый стек: \n";
    for(int i = 5; i >= 0; --i) {
        first.push(k=rand());
        cout << k << " ";
    }
 
    cout <<"\n";
 
    int min, tek;
 
    min=first.top();
    first.pop();
    third.push(min);
    
    while(!first.empty()){
    do
    {
        tek=first.top();
        first.pop();
        if(tek<min)min=tek;
        third.push(tek);
    }
    while(!first.empty());
    //cout << third.top() << " ";
    do
    {
        tek=third.top();
        third.pop();
        if(tek==min)fourth.push(tek);
        else first.push(tek);
    }
    while(!third.empty());
 
    }
        cout << third.top() << "\n";
 
 
        cout << "Debug: ";
    while(!fourth.empty()) {
        cout << fourth.top() << " ";
        fourth.pop();
    }
        for(;;);
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2010, 23:39     Сортировка стека
Посмотрите здесь:

C++ Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Ввести эталонный символ.
C++ Сортировка стека методом вставки
Переполнение стека C++
Сортировка шаблона стека, меняя узлы C++
C++ Формирование стека
Модель стека C++
Структура стек (: добавить элемент в стек, удалить элемент из стека, получить значение с вершины стека, размер стека...) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
media_kot
1 / 1 / 0
Регистрация: 12.09.2010
Сообщений: 35
14.09.2010, 23:52  [ТС]     Сортировка стека #2
хмм, смотрел здесь http://www.cplusplus.com/reference/stl/stack/ нету
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
14.09.2010, 23:53     Сортировка стека #3
Ну не надо сортировать стек, иначе какой это на фиг стек...
media_kot
1 / 1 / 0
Регистрация: 12.09.2010
Сообщений: 35
15.09.2010, 00:40  [ТС]     Сортировка стека #4
Ну а всё-таки если нужно отсортировать стек?
easybudda
Эксперт С++
9455 / 5468 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
15.09.2010, 00:49     Сортировка стека #5
Цитата Сообщение от media_kot Посмотреть сообщение
Ну а всё-таки если нужно отсортировать стек?
Да не нужно стек сортировать! Весь смысл стека в том, что элементы из него извлекаются в порядке обратном размещению. Хотите отсортировать что-нибудь - сортируйте массив, или список хотябы...
media_kot
1 / 1 / 0
Регистрация: 12.09.2010
Сообщений: 35
15.09.2010, 00:52  [ТС]     Сортировка стека #6
Ладно. Задание такое
Дано 2 стека, элементы которых упорядочены по возрастанию. Создать 3-й стек из 2-х заданных в котором элементы тоже упорядочены по возрастанию. Объединять и пересортировывать не допустимо.
собственно задание выполнил, но хочется рандомные элементы загонять в массив, а не из цикла for
silent_1991
Эксперт С++
4956 / 3032 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
15.09.2010, 08:26     Сортировка стека #7
media_kot,
Цитата Сообщение от media_kot Посмотреть сообщение
хочется рандомные элементы загонять в массив, а не из цикла for
Что, простите?..
easybudda
Эксперт С++
9455 / 5468 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
15.09.2010, 09:37     Сортировка стека #8
Цитата Сообщение от media_kot Посмотреть сообщение
Дано 2 стека, элементы которых упорядочены по возрастанию.
Цитата Сообщение от media_kot Посмотреть сообщение
но хочется рандомные элементы загонять в массив
Вы уж определитесь как-нибудь...
media_kot
1 / 1 / 0
Регистрация: 12.09.2010
Сообщений: 35
15.09.2010, 10:52  [ТС]     Сортировка стека #9
Всё я сам сделал сортировку стека, вот если кому пригодится:

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 "stdafx.h"
#include "iostream"
#include "stack"
 
using namespace std;
int main()
{
    setlocale(LC_ALL,"Russian");
 
    stack<int> first;
    stack<int> third;
    stack<int> fourth;
    
    int k=0;
    cout <<"Первый стек: \n";
    for(int i = 10; i >= 0; --i) 
    {
        first.push(k=rand());
        cout << k << " ";
    }
 
    cout <<"\n";
    int min, tek;
    while(!first.empty())
    {
        min=first.top();
        first.pop();
        third.push(min);
        while(!first.empty())
        {
            tek=first.top();
            first.pop();
            if(tek<min)min=tek;
            third.push(tek);
        }
        while(!third.empty())
        {
            tek=third.top();
            third.pop();
            if(tek==min)fourth.push(tek);
            else first.push(tek);
        }
    }
    cout << "Debug: ";
    while(!fourth.empty()) {
        cout << fourth.top() << " ";
        fourth.pop();
    }
        for(;;);
    return 0;
}
Mr.X
Эксперт С++
3040 / 1685 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
15.09.2010, 12:37     Сортировка стека #10
Стек – это не контейнер, а адаптер контейнера. Т.е. он хранит внутри себя некий контейнер (по умолчанию std::deque), но можно назначить любой другой подходящий, и занимается только тем, что ограничивает доступ ко всем функциям-членам этого контейнера, реализуя только интерфейс стека.
Т.е., выбирая стек, вы сообщаете читающим программу, что намерены использовать только интерфейс стека.
Если же вы хотите еще и сортировать, то можно выбрать любой контейнер, имеющий функции-члены push_back и pop_back (std::vector, или тот же std::deque, который «сидит» внутри std::stack), применяя для его сортировки стандартный алгоритм.
media_kot
1 / 1 / 0
Регистрация: 12.09.2010
Сообщений: 35
15.09.2010, 13:09  [ТС]     Сортировка стека #11
ну что ж я и стек отсортировал. У меня задание про стеки вот и сортирую стеки

Добавлено через 27 минут
А можно ли передать такой стек в функцию?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2010, 14:14     Сортировка стека
Еще ссылки по теме:

C++ Быстрая сортировка. Переполнение стека
Удалить элемент из стека по условию и добавить элемент в начало стека C++
"Сортировка стека" C++
Реализация стека C++
C++ Переполнение стека

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

Или воспользуйтесь поиском по форуму:
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
15.09.2010, 14:14     Сортировка стека #12
Цитата Сообщение от media_kot Посмотреть сообщение
А можно ли передать такой стек в функцию?
Любой объект можно передать в ф-цию.
Yandex
Объявления
15.09.2010, 14:14     Сортировка стека
Ответ Создать тему
Опции темы

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