进栈 no 出栈 栈顶 D C B mA-二栈底回 图3-1顺序栈示意图 <心D 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 A 3 n0 栈顶 图3-1顺序栈示意图 B C D · · · 栈底 进栈 2 1 0 出栈 top 3
4.顺序栈的操作 (1)构造一个空栈 设置(定义)一个数组后,将栈指针 置为零既可。top=-1 (2判断一个栈是否为空:top==-1? (3)判断一个栈是否为满 top==n0-1? (4)取栈J元素:W=stop] 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 4. 顺序栈的操作 (1)构造一个空栈 设置(定义)一个数组后,将栈指针 置为零既可。 top=-1 (2)判断一个栈是否为空:top==-1? (3)判断一个栈是否为满: top==n0-1? (4)取栈顶元素: w=s[top]
(5)进栈(又称压入)进栈就是在栈顶位 置往栈中添加元素。 操作原则是:首先判栈满否?若满,则上 溢;(这是要避免的)否则,可以进栈。进 栈时是先移动指针〔top=top+1)再进栈 例如,设有一栈区为s,n0=3,将ABC三个 元素依次进栈操作过程为:图3-2所示 图3-2顺序 栈进栈示意 图( top 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 (5) 进栈(又称压入)进栈就是在栈顶位 置往栈中添加元素。 操作原则是: 首先判栈满否?若满,则上 溢;(这是要避免的)否则,可以进栈。进 栈时是先移动指针(top=top+1)再进栈。 例如,设有一栈区为s ,n0=3 ,将A,B,C三个 元素依次进栈操作过程为: 图3-2所示 初态 top -1 栈 图3-2顺序 栈进栈示意 图
栈 A进栈 A top 栈 B进栈 B A top 栈 C进 B fon 2 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 A进栈 A top 0 栈 B进栈 B A top 1 栈 C进栈 C B A top 2 栈
图3-3进栈算法流程图 图3-出栈算法流程图 匚给x赋值 top top==nO 出栈操作* top-top+ /*栈空无 X=STope /*栈上溢错 元素出栈* SIt topI=X top=top /*进栈完成* /*出栈完成* 返回 返回 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 图3-3进栈算法流程图 top=top+1 S[top]=x /*进栈完成*/ /*栈上溢错*/ 给X赋值 返回 /*栈空无 元素出栈*/ X=S[top] top=top-1 /*出栈完成*/ 返回 /*出栈操作*/ 图3-5出栈算法流程图 是 是 top= =n0-1 top= = -1