欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

顺序栈的操作

程序员文章站 2022-05-12 16:30:21
...
//顺序栈的操作
#include <iostream>
#include <stdio.h>
#include <malloc.h>
#define maxsize 50

using namespace std;

typedef struct{
    int data[maxsize];
    int top;
}SqStack;

//初始化栈
void init(SqStack *s){
    s->top=-1;
}

//判断栈是否为空
bool isempty(SqStack *s){
    if(s->top==-1)
        return true;
    else
        return false;
}

//判断栈是否已满
bool isfull(SqStack *s){
    if(s->top==maxsize-1)
        return true;
    else
        return false;
}

//入栈
void push(SqStack *s,int elem){
    if(!isfull(s)){
        s->top++;
        s->data[s->top]=elem;
    }
    else
        printf("栈满!\n");
}

//出栈
void pop(SqStack *s){
    if(!isempty(s)){
        s->top--;
    }
    else
        printf("栈空\n");
}

//取栈顶元素
int top(SqStack *s){
    if(!isempty(s)){
        return s->data[s->top];
    }
    else
        printf("栈空\n");
}

//销毁栈
void destroy(SqStack *s){
    s->top==-1;
}

int main()
{
    SqStack p;
    SqStack *s;
    s=&p;
    printf("-------初始化栈------\n");
    init(s);
    printf("---------入栈--------\n");
    for(int i=0;i<10;i++){
        push(s,i);
    }
    printf("------取栈顶元素------\n");
    printf("%d \n",top(s));
    printf("--------出栈---------\n");
    for(int j=0;j<12;j++){
        pop(s);
    }
    push(s,1);
    printf("%d \n",top(s));
}

顺序栈的操作

相关标签: struct