1. 编程学习网 > 编程入门 > 计算机知识 > 循序栈的基本操作

循序栈的基本操作

循序栈的基本操作

首先采用顺序存储结构的栈称为:顺序栈

一 栈的定义

  1. #define M 100 //定义栈可能的最大长度
  2. typedef int datatype; //代表了数据类型
  3. typedef struct
  4. {
  5. datatype data[M]; //栈占用的数组空间
  6. int top; //栈顶指针指向栈顶元素在数组中的位置
  7. }stack;

二 置空栈 创建一个空的顺序栈s,即栈的初始化

  1.  
  2. void initstack(stack *s)
  3. {
  4. s->top=-1;
  5. }

三 进栈 首先让栈顶指针top加1,然后将新元素x插入栈顶指针指向的位置

  1. int push(stack *s,datatype x)
  2. {
  3. if(s->top>=M-1) //栈存储空间满,不能进栈
  4. {
  5. printf("overflow ");
  6. return 0;
  7. }
  8. s->top++; //移动栈顶元素
  9. s->data[s->top]=x; //元素x进栈
  10. return 1;
  11. }

四 出栈 先将栈顶元素赋给一个变量,然后将栈顶指针top-1

  1. datatype pop(stack *s)
  2. {
  3. datatype x;
  4. if(s->top<0) //栈空,不能出栈
  5. {
  6. printf("underflow ");
  7. exit(0);
  8. }
  9. x=s->data[s->top]; //保存栈顶元素到变量x
  10. s->top--; //移动栈顶指针
  11. return x; //返回栈顶元素
  12. }


 

本文由IT教学网整理发布,转载请注明出处:http://www.itjx.com/rumen/jisuanji/565.html

联系我们

在线咨询:点击这里给我发消息

咨询电话:400-998-2681

工作时间:7*24小时无休