数据结构 栈 数据结构J#
程序员文章站
2022-07-03 07:59:04
...
1.在push(入栈)的时候,是先移动在顶端的箭头(+1),然后才插入数据。
2.在pop(出栈)的时候,是先把数据移除,然后使箭头下移一位(-1),
入栈和出栈的操作步骤正好相反。
比如stack是一个栈,top是其下标,如果要插入i到其栈中
则stact[++top] = i;
出栈则是stack[top--]
简单代码示例
最主要的还是入栈和出栈两个方法,printlnMeWithoutString就是简单打印的工具类,没什么,就是不爱输入Sys....而省事
2.在pop(出栈)的时候,是先把数据移除,然后使箭头下移一位(-1),
入栈和出栈的操作步骤正好相反。
比如stack是一个栈,top是其下标,如果要插入i到其栈中
则stact[++top] = i;
出栈则是stack[top--]
简单代码示例
package com.javaeye.liubey.algorithm.stack; import org.lx.print.Print; /** * * 项目名称:algorithm * 包名称:com.javaeye.liubey.algorithm.stack * 类名称:Stack.java * 描述: 简单的栈测试类 使用数据模仿 * 创建人:Eason.Lau * 创建时间:2010-7-16 下午03:11:41 * Copyright http://liubey.iteye.com/ * @version * */ public class Stack { public static void main(String[] args) { StackX stack = new StackX(10); stack.push(10); stack.push(20); stack.push(30); stack.push(40); //循环输出 while(!stack.isEmpty()) { long value = stack.pop(); Print.printlnMeWithoutString(value); } } } /* * 使用数组模仿栈 */ class StackX { private int maxSize;//最大容量 private long[] arrayStack; private int top;//栈顶 public StackX(int n) { maxSize = n; arrayStack = new long[maxSize]; top = -1; } //入栈 public void push(long j) { arrayStack[++top] = j; } //出栈 public long pop() { return arrayStack[top--]; } //查看 public long view() { return arrayStack[top]; } //栈是否是空 public boolean isEmpty() { return (top == -1); } //栈是否满了 public boolean isFull() { return (top == maxSize - 1); } }
最主要的还是入栈和出栈两个方法,printlnMeWithoutString就是简单打印的工具类,没什么,就是不爱输入Sys....而省事
上一篇: 性能优化14_多线程优化(编辑中)
下一篇: 数据结构 栈 数据结构J#