当前位置:首页 > 编程入门 > 计算机知识 > 循序栈的基本操作

循序栈的基本操作
栏目分类:计算机知识发布日期:2020-01-28浏览次数:

循序栈的基本操作 首先采用顺序存储结构的栈称为:顺序栈 一 栈的定义 #define M 100 //定义栈可能的最大长度 typedef int datatype ; //代表了数据类型 typedef struct { datatype data [ M ]; //栈占用的数组空间 int top ; //栈顶指针指向栈顶元素在数组

循序栈的基本操作

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

一 栈的定义

  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. }


 

相关热词:

上一篇:vector的用法
相关内容
     
编程入门 编程教程 编程资源 编程问答