第三章 栈、队列和数组

栈定义

const int maxsize=6;

typedef struct seqstack

{

  DataType data[maxsize];

  int top;

}SeqStk;

基本运算

1 初始化

int InitStack(SeqStk *stk)

{

  stk-top=0;

  return 1;

}

2 判栈空

int EmptyStack(SeqStk *stk)

//若栈为空,则返回值1,否则返回值0

{

  if (stk->top==0)

    return 1;

  else return 0;

}

3 进栈

int Push(SeqStk *stk,DataType x)

{//若栈未满,元素x进栈stk中,否则提示出错信息

  if (stk-top == maxsize-1)

    {

      error("栈已满");

      return 0;

    }

  else 

    {

      stk->top++;

      stk->data[stk-top]=x;

      return 1;

    }

}

4 出栈

int Pop(SeqStk *stk)

{

  if (EmptyStack(stk))

  {

    error("下溢");

    return 0;

  }

  else

    {

      stk-top--;

      return 1;

    }

}

5 取栈顶元素

DataType GetTop(SeqStk *stk)

{//取栈顶数据元素,栈顶数据元素通过参数返回

  if (EmptyStack(stk))

    return NULLData;

  else

    return stk->data[stk->top];

}

上一篇:[SHOI2012] 信用卡凸包


下一篇:Matlab与STK联合仿真2-2021.12