Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
AlenaT
0 / 0 / 0
Регистрация: 29.04.2015
Сообщений: 12
#1

Реализация стека - C++

21.05.2015, 22:05. Просмотров 1842. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2015, 22:05
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Реализация стека (C++):

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

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

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

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

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

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

2
smartpointer
69 / 63 / 24
Регистрация: 17.02.2014
Сообщений: 264
22.05.2015, 00:41 #2
Видимо задание реализация своего стека.
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
AlenaT
0 / 0 / 0
Регистрация: 29.04.2015
Сообщений: 12
23.05.2015, 00:36  [ТС] #3
Вот что-то такое должно быть. но выдает ошибку, помогите исправить код, пожалуйста.

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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2015, 00:36
Привет! Вот еще темы с ответами:

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

Реализация класса стека - C++
Приветствую! Пробую написать класс стека, но работает не совсем так, как задумывалось. Что-то не так с получением значения // Êëàññ...

Реализация стека на указателях - C++
Стек на указателях: #include &lt;iostream&gt; using std::cin; using std::cout; using std::endl; enum FirstNodeEnum{NoFirstNode,...

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


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

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

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