zoukankan      html  css  js  c++  java
  • 栈主要有空栈、判栈空、判栈满、进栈、出栈、取栈顶元素六种。

    顺序栈

    • 空栈:

      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;
          }
      }
      
  • 相关阅读:
    socket 编程
    空间配置器
    线程
    Linux系统编程——进程替换:exec 函数族
    linux粘着位
    exit函数与_exit
    [smart210] 定时器与PWM
    [smart210] s5pv210的中断体系
    [smart210] Nand Flash K9F4G08U0B 的配置与读写控制(二)
    [smart210] Nand Flash K9F4G08U0B 的配置与读写控制(一)
  • 原文地址:https://www.cnblogs.com/snail-gao/p/11739718.html
Copyright © 2011-2022 走看看