zoukankan      html  css  js  c++  java
  • java实现链栈

    前面学习了java实现顺序栈:http://www.cnblogs.com/lixiaolun/p/4644134.html

    接下来,学习java实现链栈。

    链栈类代码:

    package linkedstack;
    
    public class LinkStack {
    	
    	private Element base;
    	private Element top;
    	
    	class Element
    	{
    		public Object data;
    		public Element next;
    	}
    	
    	/**
    	 * 初始化栈
    	 * */
    	void initStack()
    	{
    		top = new Element();
    		base = new Element();
    		top.data=null;
    		top.next=base;
    		base.data=null;
    		base.next=null;
    	}
    	
    	/**
    	 * 入栈
    	 * */
    	void push(Object o)
    	{
    		Element e = new Element();
    		e.data = o;
    		if(top.next==base)//第一次入栈操作
    		{
    			e.next=base;
    			top.next=e;
    		}else
    		{
    			e.next=top.next;
    			top.next=e;
    		}
    		
    	}
    	
    	/**
    	 * 出栈
    	 * */
    	void pop()
    	{
    		if(top.next==base)
    		{
    			System.out.println("栈中没有元素!");
    		}else
    		{
    			System.out.println("出栈操作"+top.next.data);
    			top.next=top.next.next;
    		}
    	}
    	
    	/**
    	 * 打印栈
    	 * */
    	void print()
    	{
    		System.out.print("打印栈:");
    		Element temp =top;
    		while(temp.next!=base)
    		{
    			System.out.print(temp.next.data+"	");
    			temp =temp.next;
    		}
    		System.out.println();
    	}
    }
    

    链栈测试类代码:

    package linkedstack;
    
    public class LinkStackMain {
    
    	public static void main(String[] args) {
    		LinkStack lStack = new LinkStack();
    		lStack.initStack();
    		lStack.pop();
    		lStack.push(1);
    		lStack.push(2);
    		lStack.push(3);
    		lStack.push(4);	
    		lStack.print();
    		
    		lStack.pop();
    		lStack.pop();
    		lStack.print();
    		
    		lStack.pop();
    		lStack.pop();
    		lStack.print();
    		lStack.pop();
    	}
    
    }
    

      

  • 相关阅读:
    MSSQL的基础应用
    SQLLite的使用
    C#反射调用其它DLL的委托事件 传值
    SQLServer 取 字段名称 类型 字段描述 等
    WCF跨域 客户端无法访问
    不同的数据库数据类型映射
    用人四策
    思考集体跳槽
    C/C++/Qt 统计运行时间
    CUDA项目属性设置
  • 原文地址:https://www.cnblogs.com/lixiaolun/p/4644141.html
Copyright © 2011-2022 走看看