Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
SveN_152v
1 / 1 / 3
Регистрация: 18.11.2013
Сообщений: 90
#1

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

03.12.2014, 20:52. Просмотров 713. Ответов 1
Метки нет (Все метки)

Банально: создать, добавить, удалить.
Без своих "написаний" никак, дело в том, что впритык не хочет реагировать на "next"!

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
94
95
96
#include "stdafx.h"
#include <stdio.h>
#include <dos.h>
#include <iostream>
#include <STDLIB.H>
#include <conio.H>
#define max_size 200
// char s[max_size]; //компоненты стека
using namespace std;
int s[max_size];
int next = 0; //  позиция стека
int Empty()
{
    return next == 0;
}
int Full()
{
    return next == max_size;
}
void Push()
{
    if (next == max_size)
    {
        cout << "Ошибка: стек полон" << endl;
    }
    else {
        next++; cout << "Добавлен" << endl;
        cout << "Что поместить в стек?" << endl;
        std::cin << s[next - 1];
    }
}
void OUTst()
{
    int i = 0;
    if (next == 0)
    {
        cout << "Cтек пуст" << endl;
    }
    else {
        for (i = 0; i <next; i++)
            cout << s[i] << "" << endl;
    }
}
void Clear()
{
    next = 0;
}
void Poz()
{
    return next;
}
void Del()
{
    int a;
    if (next == 0) cout << "Ошибка: стек пуст" << endl; else
    {
        next--; cout << "Удален" << endl;
    }
}
void menu(){
    cout << "0: распечатать стек" << endl;
    cout << "1: добавить в стек" << endl;
    cout << "2: удалить из стека" << endl;
    cout << "3: узнать номер позиции в стеке" << endl;
    cout << "4: узнать, пуст ли стек" << endl;
    cout << "5: узнать, полон ли стек" << endl;
    cout << "6: очистить стек" << endl;
    cout << "7: выход" << endl;
}
void main()
{
    char c;
    clrscr();
    textcolor(11);
    do {
        menu();
        cin >> c;
        clrscr();
        switch (c)  {
        case "0":OUTst(); getch(); break;
        case "1":Push(); break;
        case "2":Del(); getch(); break;
        case "3":cout << "Hомер" << Poz() << endl; getch(); break;
        case "4":if (Empty() == 1) cout << "Пуст" << endl;
                 else cout << "Hе пуст" << endl; getch(); break;
        case '5':if (Full() == 1)cout << "Полн" << endl;
                 else cout << "Hе полон" << endl; getch(); break;
        case '6':Clear(); cout << "Стек очищен" << endl;
            getch();
            break;
        case '7':exit(1);
        }
        delay(200);
    } while (c != 7);
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2014, 20:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Стек на основе массива (C++):

Стек на основе статического массива
Здравствуйте! Помогите пожалуйста выполнить задание. Сама уже весь форум...

Стек на основе динамического массива
Надо написать стек на основе динамического массива. Как выделить память под...

Написать стек на основе одномерного массива
Пробую написать стек на основе одномерного массива. Скажите что не так делаю....

Помогите реализовать стек на основе массива
помогите с задачачей по с++ 3. Реализуйте стек на основе массива.

Стек на основе массива, реализовать функцию resize
1) Добавить деструктор, конструктор копии и перегрузку операции присваивания....

Стек записи на основе статического массива типа запись
Добрый вечер! Помогите пожалуйста выполнить задание: Создать стек записи...

1
SveN_152v
1 / 1 / 3
Регистрация: 18.11.2013
Сообщений: 90
16.12.2014, 09: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
#include "stdafx.h"
#include <iostream>
#include <stack>
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "Russian");
    stack <int> S;
    char number; int value;
    do
    {
        cout << "1. Добавить элемент" << endl;
        cout << "2. Удалить элемент" << endl;
        cout << "3. Получить верхний элемент" << endl;
        cout << "4. Узнать размер стека" << endl;
        cout << "0. Выход" << endl;
        cout << "Номер команды > "; cin >> number;
        switch (number)
        {
        case '1': cout << "Значение > "; cin >> value;
            S.push(value); cout << endl << "Элемент добавлен в стек \n";
            break;
        case '2': if (S.empty() == true) cout << "Стек пуст \n";
                  else
                {
                      S.pop(); cout << endl << "Элемент удалён из стека \n";
                } break;
        case '3': if (S.empty() == true) cout << "Стек пуст \n";
                  else
                {
                      cout << "Верхний элемент стека: " << S.top() << endl;
                } break;
        case '4': if (S.empty() == true) cout << "Стек пуст \n";
                  else
                {
                      cout << "" << S.size() << "Размер стека \n";
                  } break;
        case '0': break;
        default: cout << endl << "Команда не определена \n";
            break;
        }
    } while (number!='0');
    _gettch();
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2014, 09:41
Привет! Вот еще темы с решениями:

Создать стек целых чисел на основе статического массива.
Создать стек целых чисел на основе статического массива. Реализовать методы :...

Стек на основе статического массива: вставить число, учитывая сортировку
всем привет. помогите решить проблему с методом pushOrder(). Его суть в том,...

Стек на основе массива структур - эт как понять читаю литературу и не могу понять!
Стек статически (на основе массива структур). Пример структура &quot;Товар&quot; которая...

Создание АТД "Стек" на основе массива
&quot;Реализуйте АТД “стек” на основе массива фиксированного размера для элементов,...


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

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

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