0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 1
1

Ошибки при реализации стека с помощью указателей

10.11.2015, 05:46. Показов 443. Ответов 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
#define N 2
#include <iostream>
#include <cstdlib>
using namespace std;
 
void push(float** stack, size_t &size, size_t &capacity,  float &element)
{if (capacity > size)
{
size++;
int
stack[int(size/sizeof(float))]=element;
}
else 
{
    realloc(stack,N * sizeof(float));
    
    capacity = capacity +  N; 
size++;
stack[int(size/sizeof(float))]=element;
 
}
 
}
 
 
float top(int **stack, size_t &size)
{
return(stack[size]);
 
}
 
void pop(int **stack, size_t &size)
{
size=size -1;
 
}
 
void destruct(int **stack)
{
    free(stack);
 
}
 
 
int main()
{
 
 
 
 
 
return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2015, 05:46
Ответы с готовыми решениями:

Ошибка при реализации стека
Здравствуйте! Делал модуль стека, еще неделю назад работал, вчера так и не смог найти ошибку..(...

Ошибка при реализации стека
Здравствуйте, помогите пожалуйста разобраться в ошибке.Пишу класс, в нём есть динамический...

Ошибка исполнения при реализации стека
#include &lt;iostream&gt; using namespace std; struct item {int a; item*p; }; int main() {...

Зачем при реализации стека используются двухсвязные списки?
Зачем при реализации стека используются двухсвязные списки????

2
Модератор
Эксперт С++
11483 / 9400 / 5650
Регистрация: 18.12.2011
Сообщений: 25,114
10.11.2015, 09:30 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
#define N 2
#include <iostream>
//#include <cstdlib>
using namespace std;
 
void push(double* stack, int &size, int &capacity, double element)
{
    if (capacity <= size)
    {
        realloc(stack,N * sizeof(double));
        capacity +=  N; 
    }
    size++;
    *(stack+size)=element;
}
 
 
double top(double *stack, int size)
{
    if(size>=0)
        return *(stack+size);
    return 0;
 
}
 
double pop(double *stack, int &size)
{
    if(size>=0)
    {
        double t=*(stack+size);
        if(size>0)
            size--;
        return t;
    }
    return 0;
}
 
void destruct(double *stack)
{
    free(stack);
}
double* create( int capacity)
{
    double *stack=(double*)malloc(capacity*sizeof(double));
    return stack;
}
int main()
{
    int size=-1,capacity=N;
    double* a=create(capacity);
    push(a,size,capacity,1.5);
    push(a,size,capacity,2.5);
    push(a,size,capacity,3.5);
    cout<<pop(a,size)<<endl;
    cout<<pop(a,size)<<endl;
    cout<<pop(a,size)<<endl;
    cout<<pop(a,size)<<endl;
    destruct(a);
    system("Pause");
    return 0;
}
0
2733 / 1892 / 564
Регистрация: 05.06.2014
Сообщений: 5,526
10.11.2015, 09:37 3
Все не так, начиная с решения на Си с некоторыми вкраплениями плюсов.
Девятая строчка подразумевает что size хранит количество чисел в стеке.
Одиннадцатая строчка (size/sizeof(float)) подразумевает что size хранит число байт в стеке, а также то что stack указывает на массив байт.
Ну а десятая строчка превращает одиннадцатую из обращения к массиву, в объявление массива.
Короче, читать учебник с самого начала.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2015, 09:37

Ошибка expected type-specifier before 'ptr_head' при реализации стека
Третий заход. :D Как-то пока мне не везёт в C++... #include &lt;iostream&gt; #include &lt;stdexcept&gt; ...

Преимущества и недостатки при реализации стека, очереди и дека через дин. массива
Доброго времени суток! 1) Назовите преимущества и недостатки реализации очереди с помощью...

Ошибки при реализации
4) Объявить массив из 3 указателей на вещественные переменные, переменные разместить в: a)...

Ошибки при реализации IEnumerable
using System; using System.Collections; using System.Linq; using System.Text; using...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru