顺序栈的类型定义

2023-12-18 13:20:29   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《顺序栈的类型定义》,欢迎阅读!
顺序,定义,类型
1、顺序栈的类型定义

#define StackSize 100 //假定预分配的栈空间最多为100 个元素 typedef char ElementType;//假定栈元素的数据类型为字符 typedef struct{

ElementType data[StackSize]; int top; }SeqStack; 注意:

顺序栈中元素用向量存放;

栈底位置是固定不变的,可设置在向量两端的任意一个端点;

栈顶位置是随着入栈和出栈操作而变化的,用一个整型量top(通常称top 为栈顶指针)来指示当前栈顶位置。 2、顺序栈的结构





注意:top 指向入栈是下一个元素将要存放的位置; top-1(减1)是指向出栈时下一个元素的取值位置。 栈空的条件:top==base;

栈满的条件:top-base>=stacksize 3、顺序栈的基本操作

前提条件:设S SeqStack 类型的指针变量。若栈底位置在向量的低端,即S-data[0]是栈底元素。 top:

1 进栈操作

进栈时,需要将S-top 1


注意:

入栈操作前,需要查看栈是否已满,S-top==StackSize-1 表示栈满

"上溢"现象--当栈满时,再做入栈运算产生空间溢出的现象。上溢是一种出错状态,应设法避免。 2 出栈操作

退栈时,需将S-top 1 注意:

出栈操作前需要考虑栈中是否有元素,S-top<0 表示空栈 "下溢"现象——当栈空时,做出栈运算产生的溢出现象。 下溢是正常现象,常用作程序控制转移的条件。

顺序栈在入栈和出栈操作时的具体变化情况,分别如下图所示:










本文来源:https://www.wddqxz.cn/8f0de5256f85ec3a87c24028915f804d2b168734.html

相关推荐