首页 > 编程语言 > 详细

Java数据结构——栈

时间:2016-03-29 12:23:59      阅读:125      评论:0      收藏:0      [点我收藏+]

技术分享

 

//=================================================
// File Name       :	Stack_demo
//------------------------------------------------------------------------------
// Author          :	Common

//类名:Stack
//属性:
//方法:
class Stack{
	private int maxSize;					//栈的长度
	private long[] stackArray;		//创建栈的数组的引用
	private int top;							//创建栈顶的引用
	
	public Stack(int s) {					//构造函数
		this.maxSize = s;
		stackArray = new long[maxSize]; 		//创建对象
		top = -1;										//栈顶等于-1
	}
	
	public void push(long j){		//入栈操作
		stackArray[++top] = j;			//先把top=-1自加成0,再入栈
	}
	
	public long pop(){
		return stackArray[top--];		//弹出当前栈顶的元素后,再自减
	}
	
	public long peek(){
		return stackArray[top];		//返回当前栈顶的元素
	}
	
	public boolean isEmpty(){	//栈顶为-1,即栈为空
		return (top == -1);
	}
	
	public boolean isFull(){			//栈顶为maxSize-1,即栈为满
		return (top == maxSize-1);
	}
	
}

//主类
//Function        : 	Stack_demo
public class Stack_demo {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Stack stack_demo = new Stack(10);
		stack_demo.push(50);
		stack_demo.push(60);
		stack_demo.push(70);
		stack_demo.push(80);
		
		while(!stack_demo.isEmpty()){		//当栈不为空
			long value = stack_demo.pop();
			System.out.print(value+"、");
		}
	}

}

 技术分享

//=================================================
// File Name       :	Word_Reverse
//------------------------------------------------------------------------------
// Author          :	Common

//类名:Stack_Char
//属性:
//方法:
class Stack_Char{
	private int maxSize;					//栈的长度
	private char[] stackArray;		//创建栈的数组的引用
	private int top;							//创建栈顶的引用
	
	public Stack_Char(int s) {					//构造函数
		this.maxSize = s;
		stackArray = new char[maxSize]; 		//创建对象
		top = -1;										//栈顶等于-1
	}
	
	public void push(char j){		//入栈操作
		stackArray[++top] = j;			//先把top=-1自加成0,再入栈
	}
	
	public char pop(){
		return stackArray[top--];		//弹出当前栈顶的元素后,再自减
	}
	
	public char peek(){
		return stackArray[top];		//返回当前栈顶的元素
	}
	
	public boolean isEmpty(){	//栈顶为-1,即栈为空
		return (top == -1);
	}
	
	public boolean isFull(){			//栈顶为maxSize-1,即栈为满
		return (top == maxSize-1);
	}
	
}


//类名:Reverse
//属性:
//方法:
class Reverse{
	private String input;
	private String output;
	
	public Reverse(String input) {			//构造函数
		super();
		this.input = input;
	}
	
	public String DoReverse(){
		int stackSize = input.length();
		Stack_Char stack_demo = new Stack_Char(stackSize);
		
		for(int i=0;i<stackSize;i++){				//把每一个字母入栈
			char ch = input.charAt(i);
			stack_demo.push(ch);
		}
		output = "";											//给output赋值,否则会变成nullXXX
		while( !stack_demo.isEmpty() ){		//把每一个字母出栈
			char ch = stack_demo.pop();
			this.output += ch;
		}
		return this.output;
	}
	
}


//主类
//Function        : 	Word_Reverse
public class Word_Reverse {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String input,output;
			input = "part";	
			System.out.println("输入的字符串:"+input);
			Reverse rev = new Reverse(input);
			output = rev.DoReverse();
			System.out.println("输出的字符串:"+output);
	}

}

 

Java数据结构——栈

原文:http://www.cnblogs.com/tonglin0325/p/5332264.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!