顺序栈的基本操作实现代码_栈的基本概念-栈顺序实现

本文介绍了栈这一数据结构的基本概念,包括栈的定义、特性以及基本操作如初始化、判栈空、进栈、出栈和取栈顶元素。栈遵循后进先出(LIFO)原则,并给出了栈的顺序存储结构的实现,使用C语言定义了一个顺序栈的数据结构,包括相关操作的函数实现。
摘要由CSDN通过智能技术生成

栈:是运算受限的线性表,这种线性表上的插入和删除运算限定在表的某一端进行。

允许进行插入和删除的一端称为栈顶,另一端称为栈低。

不含任何数据元素的栈称为空栈,处于栈顶位置的数据元素称为栈顶元素。

栈的修改原则是后进先出(Last In First Out ),因此,栈又称为后进先出线性表

栈的基本运算:

(1)初始化InitStack(S):构造一个空栈S:

(2) 判栈空EmptyStack(S):若栈S为空栈,则结果为1,否则结果为0;

(3)进栈Push(S,x):将元素x插入栈S中,使x 成为栈顶元素;

(4)出栈Pop(S):删除栈顶元素;

(5)取栈顶GetTop(S):返回栈顶元素;

栈的顺序实现

栈的顺序存储结构是用一组连续的存储单元依次存放栈中的每一个元素,并用始端作为栈底。

栈的顺序实现称为顺序栈。

顺序栈用类C语言定义如下:

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){ if(stk->top==0)       return 1;  else return 0;}

3.进栈

int Push(SeqStk *stk, DataType x){   if(stk->top==maxsize-1)   {     error("栈已满"); return 0;    }  else {     stk->top++;     stk->data[stk->top)=x;     return 1;  }} 
  1. 出栈
int Pop(SeqStk *stk){   if(EmptyStack(stk))   {      error(""); return 0;     }  else   {     stk->top--;     return 1;  }}
  1. 取栈顶元素
   DataType GetTop(SeqStk *stk){//取栈顶数据元素,栈顶数据元素通过参数返回  if(EmptyStack(stk) return NULLData;//栈空,返回NULLDdta  else      return stk->data[stk->top]; //返回栈顶数据元素}
a40de741db3ab1efcd91bef93611dc1a.png
const int max=40;typedef struct Dbstack{   DataType data[max];  int top1,top2;}DbStk;;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值