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

Реализация стека

21.05.2015, 22:05. Показов 6366. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реализация стека (добавить 1 элемент, вытащить 1 элемент в стеке, определить, когда стек будет пустой).
Помогите пожалуйста написать код. Есть вот такой, но мне кажется это не совсем то, что нужно...(
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
#include "stdafx.h"
#include<iostream>
#include<stack>
#include<queue>
#include<deque>
using namespace std;
 
 
int main()
{
    stack<int> S;      
    S.push(5);
    S.pop();
    if (S.empty())
        cout << "Stack is empty" << endl;
    else
        cout << "Stack is not empty" << endl;
    S.push(8);
    if (S.empty())
        cout << "Stack is empty" << endl;
    else
        cout << "Stack is not empty" << endl;
    system("pause");
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2015, 22:05
Ответы с готовыми решениями:

Реализация стека
Всем доброго времени суток! Нашел в на просторах интернета исходник реализации стека. Но не совсем понятен код. Что бы понять - я...

Реализация стека
Подскажите, как создать класс, который реализует стек? А также методы включения и выключения элементов?

Реализация стека
Написать программу, реализующую стек с информацией о сотрудниках и отображающую стек в порядке возрастания возраста сотрудника

2
 Аватар для smartpointer
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
22.05.2015, 00:41
Видимо задание реализация своего стека.
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
#include <iostream>
 
template<typename T>
class Stack
{
private:
    struct Node
    {
        T value;
        Node* prev;
        Node(const T& t):value(t),prev(0){}
    };
    Node* current;
    unsigned int sz;
    void Remove()
    {
        Node* temp = current->prev;
        delete current;
        current = temp;
        sz--;
    }
public:
    Stack():current(0),sz(0){}
    ~Stack()
    {
        while(current)
            Remove();
    }
    void push(const T& t)
    {
        Node* temp = current;
        current = new Node(t);
        current->prev = temp;
        sz++;
    }
    void pop()
    {
        if(sz)
            Remove();
    }
    T& top()
    {
        return current->value;
    }
    const T& top()const
    {
        return top();
    }
    bool empty()
    {
        return !sz;
    }
    const unsigned int& size()const
    {
        return sz;
    }
};
 
 
int main()
{
    setlocale(LC_ALL,"Russian");
    Stack<int> s;
    for(int i = 0; i < 10;i++)
        s.push(i);
    std::cout<<"Размер контейнера:"<<s.size()<<"\n";
    while(!s.empty())
    {
        std::cout<<"Извлечен элемент со значением:"<< s.top() <<"\n";
        s.pop();
    }
    std::cout<<"Размер контейнера после удаления:"<<s.size();
    return 0;
}
0
0 / 0 / 1
Регистрация: 29.04.2015
Сообщений: 12
23.05.2015, 00:36  [ТС]
Вот что-то такое должно быть. но выдает ошибку, помогите исправить код, пожалуйста.

cpp(63) : error C2039: OutPut: не является членом "std::stack<_Ty>"
1> with
1> [
1> _Ty=int
1> ]
cpp(70) : error C2065: ELEMENT: необъявленный идентификатор
cpp(70) : error C2228: выражение слева от ".Content" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'
cpp(72) : error C2039: full: не является членом "std::stack<_Ty>"
1> with
1> [
1> _Ty=int
1> ]
cpp(75) : error C2065: N: необъявленный идентификатор
cpp(75) : error C2065: ELEMENT: необъявленный идентификатор
cpp(75) : error C2228: выражение слева от ".Content" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'

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
#include <iostream> //для операторов cout, cin - ввод, вывод
#include <clocale> //для функции настройки локали
#include <iomanip> //форматирование вывода
#include <conio.h> //для работы с консолью
#include <stack>
 
using namespace std; //используем именное пространство std
void stackRealization()//функция реализации стека
{
    stack <int> st;//создание стека st целого типа
    char command;//переменная для номера команды
    int x;//переменная для значения, которое ввел пользователь
 
    do//цикл работает до тех пор, пока пользователь не введет команду 0
    {
        cout << "1. Добавление элемента в стек\n";//вывод сообщений со списком команд
        cout << "2. Удаление элемента\n";
        cout << "3. Вывести верхний элемент\n";
        cout << "4. Вывести размер стека\n";
        cout << "5. Вывести элементы стека\n";
        cout << "6. Проверка пустоты стека\n";
        cout << "7. Проверка заполненности стека\n";
        cout << "0. Выход\n";
 
        cout << "Введите номер команды: ";
        cin >> command;//ввод номера команды
 
        switch (command)//функция выборки
        {
            case '1'://если пользователь ввел команду '1', тогда
                cout << "Введите значение элемента: ";
                cin >> x;//ввод значения
                st.push(x);//добавление элемента
                cout << "\n\nЭлемент (" << x << ") добавлен в стек";
                break;//прерывает работу switch
            case '2':
                if (st.empty() == true) 
                    cout << "\n\n Стек пуст";
                else//если стек не пустой
                {
                    st.pop();//удаление элемента
                    cout << "\n\nЭлемент удален из стека";
                }
                break;
            case '3':
                if (st.empty() == true) 
                    cout << "\n\nСтек пуст";
                else
                    cout << "\n\nВерхний элемент стека: " << st.top();//вывод верхнего элемента стека
                break;
            case '4':
                if (st.empty() == true) 
                    cout << "\n\nСтек пуст";
                else
                    cout << "\n\nРазмер стека: " << st.size();//вывод размера стека
                break;
            case '5':
                if (st.empty()==true)
                    cout << "\n\nСтек пуст";
                else
                {
                    cout << "\n\nЭлементы стека";
                    st.OutPut();
                }
                break;
            case '6':
                if (st.empty()==true)
                    cout << "\n\nСтек пуст";
                else
                    cout << "\n\nВ стеке "<< ELEMENT.Content <<" элемента"; 
            case '7':
                if (st.full()==true)
                    cout << "\n\nСтек полный";
            else
                cout << "/n/nЕсть возможность добавить " << N-ELEMENT.Content << " элементов" << endl; 
            break;
            case '0':
            break;
 
            default://при не совпадении команд
                cout << "Ошибка! Команда неопределена.\n";
            break;
        }
    } while (command!='0');
}
 
int main()//главная функция
{
    setlocale (LC_ALL, "Russian"); //корректное отображение Кириллицы, включаем русский язык
    stackRealization();//вызов функции stack_realization
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.05.2015, 00:36
Помогаю со студенческими работами здесь

Реализация стека
вот такие ошибки при реализации: stack.h(26) : error C2953: 'Stack' : class template has already been defined liststack.h(10) : error...

Реализация стека
Помогите создать структуру данных типа &quot;стек&quot;, элементы которого занимают 10 кб. Операции, вы-полняемые над стеком: проверить,...

реализация стека
всем привет! народ помогите с программой (не пойму в чем ошибка, помогите исправить) #include &quot;stdafx.h&quot; #include...

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

Реализация стека с шаблонами
Вообщем, реализую стек известная проблема, не могу понять почему не компилирует, хотя 20 раз все проверил #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru