栈的定义及基本操作

一、栈的定义、性质及存储方式

1、定义:栈是仅限定在表的一端操作的线性表
2、性质:先进后出(后进先出)
3、栈的存储方式:顺序存储和链式存储在这里插入图片描述

二、顺序栈的基本操作

在这里插入图片描述
顺序栈的类型定义

typedef struct{
    
    
  ElemType ST[maxsize];
  int top;
}stack;

栈的压入操作
(1)首先判断是否栈满,若栈满,则输出“栈满溢出”;
(2)先指针top++,后入栈元素值;

Push(&S,e)
{
    
    
 if(S.top==maxsize-1)
 cout<<"栈满溢出"<<endl;
 else
 {
    
    
  S.tpo++;
  S.St[S.top]=e;
 }
 return S;
}

栈的弹出操作
(1)判断是否栈空,若是,则返回“栈空下溢”;
(2)取栈顶元素,指针top- -;

POP(&S,&e)
{
    
    
if(S.top==0)
cout<<"栈空下溢"<<endl;
else
 {
    
    
  e=S.ST[S.top];
  S.top--;
 }
 return S;
}

读栈顶元素
当栈非空时,读取并返回栈顶元素,(该操作栈顶指针不变)

Gettop(S,&e)
{
    
    
  if(S.top!=0)
  e=S.ST[S.top];
  return e;

猜你喜欢

转载自blog.csdn.net/gets_s/article/details/104946838