数据结构 栈

1.在push(入栈)的时候,是先移动在顶端的箭头(+1),然后才插入数据。
2.在pop(出栈)的时候,是先把数据移除,然后使箭头下移一位(-1),
入栈和出栈的操作步骤正好相反。 8)

比如stack是一个栈,top是其下标,如果要插入i到其栈中
则stact[++top] = i;
出栈则是stack[top--] :oops:

简单代码示例 :lol:

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....而省事 :)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值