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

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

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

Стек - C++

30.05.2012, 23:46. Просмотров 345. Ответов 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
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <limits.h>
 
#define MAX 100
#define ERROR INT_MIN
int stack[MAX];
int stCnt = -1;
 
int pop()
{
    if (stCnt < 0)
        return ERROR;
    stCnt--;
    return stack[stCnt+1];
}
 
bool push(int el)
{
    if (stCnt == MAX-1) return false;
    stack[++stCnt] = el;
    return true;
}
 
bool isEmpty()
{
    if (stCnt < 0) return true;
    return false;
}
 
 
int main()
{
    
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2012, 23:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Стек (C++):

Используя стек, описать функцию проверяющую, является ли стек пустым - C++
Используя стек, описать функцию проверяющую, является ли стек пустым

Программа добавляет введенный массив 5*5 в стек и выводит полученный стек двумя столбцами - C++
Программа добавляет введенный массив 5*5 в стек и выводит полученный стек двумя столбцами #include &lt;iostream&gt; #include &lt;stdlib.h&gt; ...

Переменные в стеке. Где хранятся? Как обрабатываются? Есть ли программный стек или только стек процессора? - C++
Есть у меня пробелы в познаниях, хотел бы их устранить. 1. Что такое стек в самом языке С++ ? 2. В какой памяти он хранится и почему...

при работе рекурсивной функции заканчивается стек и программа соответственно; как сделать так, чтобы она писала "стек закончился"? - C++
Сабж g++ 4.5.0

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

Стек - C++
Имеется такой код: struct stack { int a; struct stack *next; }; void push(stack* &amp;next, int a) { stack *pv =...

1
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
31.05.2012, 00:06 #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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include<iostream>
#include<string>
using namespace std;
 
class Stacks
{
    int *stacks;
    int last, first, siz, size_2, x;
 
public:
    Stacks(int n);
    ~Stacks();
    void push(int n);   // добавление элемента
    void clear();   // очистка стека
    void pop(); // удаление последнего элемента   
    void size();  // количество элементов в стеке
    void back();  // узнать знач последнего элемента не удаляя его 
};
 
Stacks::Stacks(int r)
{
    size_2=1;
    stacks = new int[size_2];
    last=0;
    first=0;
    siz=0; 
}
 
Stacks::~Stacks()
{
    delete[]stacks;
}
 
void Stacks::clear()
{
    first=last;
    cout <<"ok\n";
}
 
void Stacks::size()
{
    siz=0;
    for(int i=first; i<last; i++)
    {
        siz++;
    }
    cout << siz << "\n";
}
 
void Stacks::back() 
{
    if(first==last)
    {
        cout << "error\n";
    }
    else
    {
        cout << stacks[last-1] << "\n";
    }
}
 
void Stacks::push(int n)
{
    if (size_2==last)
    {
        int *new_stacks=new int[size_2*2];
        for (int i=0; i<size_2; i++)
        {
            new_stacks[i]=stacks[i];
        }
        delete[] stacks;
        stacks=new_stacks;
        size_2*=2;
    }
    stacks[last]=n;
    last++;
    cout << "ok\n";
 
}
 
void Stacks::pop()
{
    if(first==last)
    {
        cout << "error\n";
    }
    else
    {
        cout << stacks[last-1];
        stacks[last-1]=x;
        last--;
        cout <<"\n";
    }
    
}
 
int main()
{
    Stacks s(5);
    int n;
    string k;
    for(;;)
    {
        cin>>k; 
        if (k=="push")
        {
            cin>>n;
            s.push(n);
        }
        if (k=="pop")
        {
            s.pop();
        }
        if (k=="clear")
        {
                s.clear();
        }
        if (k=="size")
        {
            s.size();
        }
        if (k=="back")
        {
            s.back();
        }               
        if (k=="exit")
        {
            cout <<"bye";
            return 1;
        }
    }
    return 1;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2012, 00:06
Привет! Вот еще темы с ответами:

Стек - C++
Реализовать с использованием массива стек (первый пришел, последний ушел), для чего организовать добавление, удаление элементов в массив и...

Стек - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; class Stack_mass { public: int *data; int max_count,...

Стек - C++
задание: Требуется реализовать структуру данных стек при помощи массива, размер массива константый, В операциях вставки и удаления...

Стек - C++
Реализовать при помощи одного массива два стека, суммарное количество элементов в которых ограничено длиной массива. Все стандартные...


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

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

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