栈的练习

//zhan和队列,你就实现一个之后,插入1-100,然后取出1-100
#include <iostream>
 
typedef int datatype;
#define SIZE 100
typedef struct stack{
    datatype data[100];
    int head;
}_stack;
void init(struct stack *_stack)
{
    for(int i = 0;i<100;i++)
        (*_stack).data[i] = 0;
    (*_stack).head = 0;
}
bool isEmpty(struct stack *_stack)
{
    return _stack->head == 0;
}
bool isFull(struct stack *_stack)
{
    return _stack->head == SIZE;
}
void push(struct stack *_stack,datatype data)
{
    if(!isFull(_stack))
    {
    (*_stack).data[(*_stack).head] = data;
    (*_stack).head++;
    }
    else
    {
        printf("栈满");
        exit(1);
    }
}

datatype pop(struct stack *_stack)
{
    datatype tmp;
    if(!isEmpty(_stack))
    {
        _stack->head--;
        tmp = _stack->data[_stack->head];
    }
    else
    {
        printf("栈空");
        exit(1);
    }
}
//int main()
//{   
//    stack mystack;
//    init(&mystack);
//    for(int i = 0;i<100;i++)
//    {
//        push(&mystack,i);
//    }
//    for(int i = 0;i<100;i++)
//    {
//        printf("%d\n" ,pop(&mystack));
//    }
//    return 0;
//}
原文地址:https://www.cnblogs.com/qingcheng/p/3099068.html