`
marcoSpring
  • 浏览: 32763 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 栈

阅读更多
    最近总觉得逻辑思维有点差劲,上大学的时候,老师曾经说过学好数据结构不管以后用什么语言都能够做到游刃有余,当时年少轻狂,现在从新把数据结构拾起来。从第一个开始:栈
  
package test; 
/** 
 * @author 作者 Marcospring: 
 * @version 创建时间:2012-7-23 下午01:57:34 
 * 栈
 */
public class Stack {
	private int [] S;
	private int top;
	//初始化一个栈
	public Stack(int size){
		S = new int[size];
		top = -1;
	}
	//判断栈是否为空。
	public boolean StackEmpty(){
		return top == -1;
	}
	//判断栈是否满了
	public boolean StackFull(){
		return top == S.length-1;
	}
	//入栈
	public void Push(int el){
		if(S != null){
			if(StackFull()){
				System.out.print("栈满了!");
			}else{
				top++;
				S[top]= el;
			}
		}else{
			System.out.println("请初始化栈!");
		}
		
	}
	//出栈
	public int Pop(){
		if(StackEmpty()){
			System.out.println("栈为空!");
			return 0;
		}else{
			int temp = S[top];
			top--;
			return temp;
		}
	}
	//取栈顶元素
	public int StackTop(){
		if(StackEmpty()){
			System.out.print("栈为空!");
			return 0;
		}else{
			return S[top];
		}
	}
	//清空栈
	public void ClearStack(){
		top = -1;
	}
	//展示栈中的内容
	public void display(){
		if(StackEmpty()){
			System.out.println("栈为空!");
		}else{
			for(int i=top;i>=0;i--){
				System.out.print(S[i]+",");
			}
		}
	}
}

   代码是我看这数据结构中对栈的定义,以及对栈操作写的。我个人认为不好理解的地方在栈顶也就是top这个变量。栈顶我最先认为的是栈的大小。通过画图发现错了,所谓栈顶,应该是栈顶第一个元素的索引才对。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics