欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据结构 栈 数据结构J# 

程序员文章站 2022-07-03 07:58:58
...
1.在push(入栈)的时候,是先移动在顶端的箭头(+1),然后才插入数据。
2.在pop(出栈)的时候,是先把数据移除,然后使箭头下移一位(-1),
入栈和出栈的操作步骤正好相反。数据结构 栈
            
    
    
        数据结构J# 

比如stack是一个栈,top是其下标,如果要插入i到其栈中
则stact[++top] = i;
出栈则是stack[top--]数据结构 栈
            
    
    
        数据结构J# 

简单代码示例数据结构 栈
            
    
    
        数据结构J# 
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....而省事数据结构 栈
            
    
    
        数据结构J# 
相关标签: 数据结构 J#