реализация стека с использованием массива динамического распределения памяти - PullRequest
0 голосов
/ 18 октября 2019

** код работает правильно, но не работает с индексами 0 и 1 (45 и 76), он печатает ненужные номера для стека [0] и стека [1]. Я использую кодовые блоки, которые вы можете добавить push(item);, если хотите столькораз вы хотите **

#include<stdio.h>
#include<stdlib.h>
int *stack;
int top=-1;
void push(int item);
void pop();
void peek();
int main()
{
    stack=(int*)calloc(top+1,sizeof(int));
    push(45);
    push(76);
    push(24);
    push(5);
    push(67);
    push(98);
    push(1009);
    push(6759);
    while(top!=-1)
    {
        peek();
        pop();
    }
    return 0;
}
void push(int item)
{
    top++;
    realloc(stack,(top+1)*sizeof(int));
    stack[top]=item;
}
void peek()
{
    printf("%d\t%d\n",stack[top],top);
}
void pop()
{
    top--;
    realloc(stack,(top+1)*sizeof(int));
}
...