java数据结构之堆栈

建立节点类(Node.java)

package com.yz.mystack;  
 
public class Node {  
    Object data;  
    Node next;  
    public Node(Object data){  
        this.data=data;  
        next=null;  
    }  
    public Object getData() {  
        return data;  
    }  
    public void setData(Object data) {  
        this.data = data;  
    }  
    public Node getNext() {  
        return next;  
    }  
    public void setNext(Node next) {  
        this.next = next;  
    }  
      


建立链表(Link.java)

package com.yz.mystack;  
 
public class Link {  
    Node head;  
    public Link(){  
        head=new Node(null);  
    }  
    public void addNode(Node node){  
        Node p=head;  
        node.setNext(p.getNext());  
        p.setNext(node);  
          
    }     
    public void delNode(){  
        if(!isEmploy()){  
            head.setNext(head.getNext().getNext());  
        }  
    }  
      
    public Node gettop(){  
        return head.getNext();  
    }  
    public Boolean isEmploy(){  
        return head.getNext()==null;  
    }  
    public void display(){  
        Node p=head;  
        while(true){  
            p=p.getNext();  
            if(p!=null){  
                System.out.println(p.getData());  
            }else{  
                break;  
            }  
        }  
    }  
      


建立堆栈

package com.yz.mystack;  
 
public class Stack {  
    Link link;  
      
    public Stack(){  
        link=new Link();  
    }  
    public void push(Object data){  
        link.addNode(new Node(data));  
    }  
      
    public Object peek(){  
        return link.gettop().getData();  
    }  
    public Object pop(){  
        Object data=peek();  
        link.delNode();  
        return data;  
    }  
 


你可能感兴趣的:(java,数据结构)