• 栈主要有空栈、判栈空、判栈满、进栈、出栈、取栈顶元素六种。

    顺序栈

    • 空栈:

      void InitStack(SeqStack *S){
      	S->top = -1;
      }
      
    • 判栈空

      int StackEmpty(SeqStack *S){
          return S->top==-1;
      }
      
    • 判栈满

      int StackFull(SeqStack *S){
          return S->top == StackSize -1;
      }
      
    • 进栈

      void Push(SeqStack *S,DataType x){
          if(StackFull(S)){
              prinf("stack overflow");
          }else{
              S->top = S->top+1;
              S->data[S->top]=x;
          }
      }
      
    • 出栈

      DataType Pop(){
          if(StackEmpty(S)){
              prinf("stack underflow");
              exit(0);
          }else{
              return S->data[S->top--];
          }
      }
      
    • 取栈顶元素

      DataType GetTop(SeqStack *S){
          if(StackEmpty(S)){
              prinf("stack empty");
              exit(0);
          }else{
              return S->data[S->top];
          }
      }
      

    链栈

    • 判栈空

      int StackEmpty(LinkStack top){
          return top == NULL;
      }
      
    • 进栈

      LinkStack Push(LinkStack top,DataType x){
          StackNode *p;
          p=(StackNode *)malloc(sizeof(StackNode));
          p->data=x;
          p->next=top;
          top=p;
          return top;
      }
      
    • 出栈

      LinkStack Pop(LinkStack top,DataType x){
          StackNode *p=top;
          if(StackEmpty(top)){
              prinf("stack empty");
              exit(0);
          }
          else{
              *x=p->data;
              top=p->next;
              free(p);
              return top;
          }
      }
      
    • 取栈顶元素

      DataType GetTop(LinkStack top){
          if(StackEmpty(top)){
              prinf("stack empty");
              exit(0);
          }else{
              return top->data;
          }
      }
      
  • 相关阅读:
    [转]数据类型和Json格式
    maven 配置阿里云仓库
    maven windows 环境变量
    jdk windows环境变量
    springcloud hystrix 部分参数整理
    springboot 解决 woff2、ttf 跨域无法解析问题
    centos7 mysql5.7 rpm 安装
    centos7.3 chrome 安装
    springboot 1.5.X junit测试
    centos7 配置ftp访问
  • 原文地址:https://www.cnblogs.com/snail-gao/p/11739718.html
Copyright © 2020-2023  润新知