zoukankan      html  css  js  c++  java
  • 栈的基本操作

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<malloc.h>
    using namespace std;
    typedef struct {
      int *top;
      int *base;
      int stack_size;
    }stacks;
    void creat_stack(stacks &a){
      a.base=(int *)malloc(100*sizeof(int));
      a.top=a.base;
      a.stack_size=100;
    }
    void pop(stacks &s){
      if(s.base==s.top){
          return ;
      }else{
        s.top--;
      }
    }
    bool isempty(stacks s){
       if (s.top==s.base){
          return 1;
       }else {
          return 0;
       }
    }
    void push(stacks &s,int e){
       *s.top=e;
       s.top++;
    }
    int get_top(stacks s){
      if (s.top==NULL)
      return -1;
      else
      return *(s.top-1);
    }
    int main(){
       stacks a;
      int n,tmp;
      creat_stack(a);
      scanf("%d",&n);
      for (int i=1;i<=n;i++){
        scanf("%d",&tmp);
    
        if (tmp==get_top(a)){
            pop(a);
        }else {
            // cout<<"aa"<<endl;
             push(a,tmp);
        }
      }
      while(!isempty(a)){
        printf("%d
    ",get_top(a));
        pop(a);
      }
      return 0;
    }
    有不懂欢迎咨询 QQ:1326487164(添加时记得备注)
  • 相关阅读:
    FZU Monthly-201906 tutorial
    FZU Monthly-201906 获奖名单
    FZU Monthly-201905 tutorial
    BZOJ1009 GT考试
    BZOJ2428 均分数据
    模拟退火
    BZOJ3680 吊打XXX
    BZOJ4818 序列计数
    BZOJ4103 异或运算
    BZOJ3512 DZY Loves Math IV
  • 原文地址:https://www.cnblogs.com/bluefly-hrbust/p/10177482.html
Copyright © 2011-2022 走看看