Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/48: Рейтинг темы: голосов - 48, средняя оценка - 4.54
media_kot
2 / 2 / 0
Регистрация: 12.09.2010
Сообщений: 35
#1

Сортировка стека

14.09.2010, 23:39. Просмотров 8709. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2010, 23:39
Ответы с готовыми решениями:

Быстрая сортировка. Переполнение стека
Написал программу быстрой сортировки происходит переполнение стека, при большом...

Сортировка стека методом вставки
Дан стек реализованный статически. Неоходимо написать функцию вставки в него...

Сортировка шаблона стека, меняя узлы
написала шаблон стека необходимо организовать сортировку, меняя узлы стека ...

Структура стек (: добавить элемент в стек, удалить элемент из стека, получить значение с вершины стека, размер стека...)
Всем привет,ребят помогите пожалуйста с лабой,вообще без понятия про стеки:(...

"Сортировка стека"
Встречал вопросы связанные с сортирвкой стека. Но разве это можно делать? Или...

11
media_kot
2 / 2 / 0
Регистрация: 12.09.2010
Сообщений: 35
14.09.2010, 23:52  [ТС] #2
хмм, смотрел здесь http://www.cplusplus.com/reference/stl/stack/ нету
0
Хохол
Эксперт С++
475 / 443 / 34
Регистрация: 20.11.2009
Сообщений: 1,292
14.09.2010, 23:53 #3
Ну не надо сортировать стек, иначе какой это на фиг стек...
0
media_kot
2 / 2 / 0
Регистрация: 12.09.2010
Сообщений: 35
15.09.2010, 00:40  [ТС] #4
Ну а всё-таки если нужно отсортировать стек?
0
easybudda
Модератор
Эксперт CЭксперт С++
10029 / 5953 / 1486
Регистрация: 25.07.2009
Сообщений: 11,251
15.09.2010, 00:49 #5
Цитата Сообщение от media_kot Посмотреть сообщение
Ну а всё-таки если нужно отсортировать стек?
Да не нужно стек сортировать! Весь смысл стека в том, что элементы из него извлекаются в порядке обратном размещению. Хотите отсортировать что-нибудь - сортируйте массив, или список хотябы...
0
media_kot
2 / 2 / 0
Регистрация: 12.09.2010
Сообщений: 35
15.09.2010, 00:52  [ТС] #6
Ладно. Задание такое
Дано 2 стека, элементы которых упорядочены по возрастанию. Создать 3-й стек из 2-х заданных в котором элементы тоже упорядочены по возрастанию. Объединять и пересортировывать не допустимо.
собственно задание выполнил, но хочется рандомные элементы загонять в массив, а не из цикла for
0
silent_1991
Эксперт С++
5007 / 3067 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
15.09.2010, 08:26 #7
media_kot,
Цитата Сообщение от media_kot Посмотреть сообщение
хочется рандомные элементы загонять в массив, а не из цикла for
Что, простите?..
0
easybudda
Модератор
Эксперт CЭксперт С++
10029 / 5953 / 1486
Регистрация: 25.07.2009
Сообщений: 11,251
15.09.2010, 09:37 #8
Цитата Сообщение от media_kot Посмотреть сообщение
Дано 2 стека, элементы которых упорядочены по возрастанию.
Цитата Сообщение от media_kot Посмотреть сообщение
но хочется рандомные элементы загонять в массив
Вы уж определитесь как-нибудь...
0
media_kot
2 / 2 / 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;
}
1
Mr.X
Эксперт С++
3178 / 1705 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
15.09.2010, 12:37 #10
Стек – это не контейнер, а адаптер контейнера. Т.е. он хранит внутри себя некий контейнер (по умолчанию std::deque), но можно назначить любой другой подходящий, и занимается только тем, что ограничивает доступ ко всем функциям-членам этого контейнера, реализуя только интерфейс стека.
Т.е., выбирая стек, вы сообщаете читающим программу, что намерены использовать только интерфейс стека.
Если же вы хотите еще и сортировать, то можно выбрать любой контейнер, имеющий функции-члены push_back и pop_back (std::vector, или тот же std::deque, который «сидит» внутри std::stack), применяя для его сортировки стандартный алгоритм.
0
media_kot
2 / 2 / 0
Регистрация: 12.09.2010
Сообщений: 35
15.09.2010, 13:09  [ТС] #11
ну что ж я и стек отсортировал. У меня задание про стеки вот и сортирую стеки

Добавлено через 27 минут
А можно ли передать такой стек в функцию?
0
Andrew_Lvov
Эксперт С++
260 / 190 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
15.09.2010, 14:14 #12
Цитата Сообщение от media_kot Посмотреть сообщение
А можно ли передать такой стек в функцию?
Любой объект можно передать в ф-цию.
0
15.09.2010, 14:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2010, 14:14

Удалить элемент из стека по условию и добавить элемент в начало стека
Здравствуйте, помогите пожалуйста исправить(дописать) программы. 1). Нужно...

Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Ввести эталонный символ.
Создать стек для символов. Максимальный размер стека вводится с экрана. Создать...

Сортировка Шелла. Написал программу, не могу понять, почему сортировка не выполняется
Программа создает динамический массив с рандомным заполнением. Дальше выбор...


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

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

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