Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
0 / 0 / 1
Регистрация: 26.05.2012
Сообщений: 73
1

Работа со стеком

30.05.2012, 13:59. Просмотров 3520. Ответов 6
Метки нет (Все метки)

Создать программу, реализовав работу со структурой данных - стеком. В программе
реализовать добавление и удаление элементов.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2012, 13:59
Ответы с готовыми решениями:

работа со стеком
попалась такая задача: создать стек для положительных и отрицательных чисел. максимальный размер...

Работа со стеком!
Необходимо записать заполнение стека с клавиатуры. Добавлено через 44 секунды #include...

Работа со стеком.
Интересует вопрос: для использовония функций pop() и push() нужно ли подключать заголовочный файл...

Работа со СТЕКОМ!!!!!!:)
Создать класс для работы со стеком. Элемент стека – символ. --- Сформировать два стека,содержащие...

6
Модератор
Эксперт Python
27512 / 14541 / 2850
Регистрация: 12.02.2012
Сообщений: 23,913
Записей в блоге: 4
30.05.2012, 14:33 2
Просто показать, как работает стек?
0
0 / 0 / 1
Регистрация: 26.05.2012
Сообщений: 73
30.05.2012, 14:39  [ТС] 3
Получается что да.
0
Модератор
Эксперт Python
27512 / 14541 / 2850
Регистрация: 12.02.2012
Сообщений: 23,913
Записей в блоге: 4
30.05.2012, 14:56 4
Вот, например:

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
// Стек:
 
int *sArr;   
int sPtr;
int sSize;
 
// Реализация стека
 
void InitStack(int n) // Проинициализировать стек
{
    int i;
    sSize=n;
    sArr=new int[sSize];
    for (i=0; i< sSize; i++) sArr[i]=0;
    sPtr=0;
}
 
void DestroyStack() // Уничтожить стек
{
    delete sArr;
}
 
int isEmptyS()   // Проверить пустоту
{
    if (sPtr == 0)
       return -1;
    else
       return 0;
}
 
void Push(int x)    // Занести в стек
{
    if (sPtr < sSize)
    {
        sArr[sPtr++]=x;
        Chk[x]=1;
        Num[x]=sPtr-1;
    }
    else 
        throw "Stack overflow!!!";
 
}
 
int Pop()   // Извлечь из стека
{
    int z;
    if (sPtr > 0) 
    {
        z=sArr[--sPtr];
        return z;
    }
    throw "Stack is empty!"; 
}
 
void Show()  // Распечатать содержимое стека
{
    int i;
 
    cout << "STACK: ";
 
    for (i=0; i < sPtr; i++)
        cout << sArr[i] << " ";
 
    cout << endl;
 
}
Пойдет?
0
0 / 0 / 1
Регистрация: 26.05.2012
Сообщений: 73
30.05.2012, 15:43  [ТС] 5
а можешь полностью пожалуйста. А то я не совсем уверен что тут подключать...
0
Модератор
Эксперт Python
27512 / 14541 / 2850
Регистрация: 12.02.2012
Сообщений: 23,913
Записей в блоге: 4
31.05.2012, 11:55 6
Примерно так:


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
#include "iostream.h"
 
 
// Стек:
 
int *sArr;   
int sPtr;
int sSize;
 
// Реализация стека
 
void InitStack(int n) // Проинициализировать стек
{
    int i;
    sSize=n;
    sArr=new int[sSize];
    for (i=0; i< sSize; i++) sArr[i]=0;
    sPtr=0;
}
 
void DestroyStack() // Уничтожить стек
{
    delete sArr;
}
 
int isEmptyS()   // Проверить пустоту
{
    if (sPtr == 0)
       return -1;
    else
       return 0;
}
 
void Push(int x)    // Занести в стек
{
    if (sPtr < sSize)
    {
        sArr[sPtr++]=x;
        Chk[x]=1;
        Num[x]=sPtr-1;
    }
    else 
        throw "Stack overflow!!!";
 
}
 
int Pop()   // Извлечь из стека
{
    int z;
    if (sPtr > 0) 
    {
        z=sArr[--sPtr];
        return z;
    }
    throw "Stack is empty!"; 
}
 
void Show()  // Распечатать содержимое стека
{
    int i;
 
    cout << "STACK: ";
 
    for (i=0; i < sPtr; i++)
        cout << sArr[i] << " ";
 
    cout << endl;
 
}
 
int main(int argc, char* argv[])
{
 
  InitStack(100);
 
  Push(1);
  Push(2);
  Push(3);
 
  cout << Pop() << endl;
  cout << Pop() << endl;
  cout << Pop() << endl;
 
  DestroyStack();
 
}
0
Модератор
Эксперт Python
27512 / 14541 / 2850
Регистрация: 12.02.2012
Сообщений: 23,913
Записей в блоге: 4
31.05.2012, 14:24 7
Виноват! Взял стек из проекта (есть лишнее!) Правильно так:

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
#include "iostream.h"
 
// Стек:
 
int *sArr;   
int sPtr;
int sSize;
 
// Реализация стека
 
void InitStack(int n) // Проинициализировать стек
{
    int i;
    sSize=n;
    sArr=new int[sSize];
    for (i=0; i< sSize; i++) sArr[i]=0;
    sPtr=0;
}
 
void DestroyStack() // Уничтожить стек
{
    delete sArr;
}
 
int isEmptyS()   // Проверить пустоту
{
    if (sPtr == 0)
       return -1;
    else
       return 0;
}
 
void Push(int x)    // Занести в стек
{
    if (sPtr < sSize)
    {
        sArr[sPtr++]=x;
        //Chk[x]=1;
        //Num[x]=sPtr-1;
    }
    else 
        throw "Stack overflow!!!";
 
}
 
int Pop()   // Извлечь из стека
{
    int z;
    if (sPtr > 0) 
    {
        z=sArr[--sPtr];
        return z;
    }
    throw "Stack is empty!"; 
}
 
void Show()  // Распечатать содержимое стека
{
    int i;
 
    cout << "STACK: ";
 
    for (i=0; i < sPtr; i++)
        cout << sArr[i] << " ";
 
    cout << endl;
 
}
 
int main(int argc, char* argv[])
{
 
  InitStack(100);
 
  Push(1);
  Push(2);
  Push(3);
 
  cout << Pop() << endl;
  cout << Pop() << endl;
  cout << Pop() << endl;
 
  DestroyStack();
 
  return 0;
}
Из картинки видно, что числа выводятся из стека в порядке, противоположном порядку ввода.
1
Миниатюры
Работа со стеком  
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2012, 14:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Работа со стеком
Помогите исправить ошибки! Пусть символ # определен в текстовом редакторе как стирающий символ...

Работа со стеком
Создать класс &quot;stack&quot;, перегрузить операцию &quot;+&quot; (добавление элемента в стек) и &quot;-&quot; (удаление...

Работа со стеком
Задача: Написать программу которая создает стек целых чисел считываемых из файла и удаляет из него...

Работа со стеком
Напишите программу, которая создает стек из 30 элементов, состоящий из чисел Фибоначчи (первый и...


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

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

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