您的位置:首页 > 理论基础 > 数据结构算法

数据结构Java版-栈和队列

2015-02-28 16:14 148 查看
在Java中实现链表是非常简单的,每个节点都有一个值,然后把它链接到下一个节点。

定义节点:

class Node {
    int val;
    Node next;
  
    Node(int x) {
        val = x;
        next = null;
    }
}


栈结构(注意箭头方向):



class Stack{
    Node top; 
  
    public Node peek(){
        if(top != null){
            return top;
        }
  
        return null;
    }
  
    public Node pop(){
        if(top == null){
            return null;
        }else{
            Node temp = new Node(top.val);
            top = top.next;
            return temp;   
        }
    }
  
    public void push(Node n){
        if(n != null){
            n.next = top;
            top = n;
        }
    }
}


队列(Queue)前端(front)进行删除操作,而在表的后端(rear)进行插入操作
class Queue{
    Node first, last;

    public void enqueue(Node n){
        if(first == null){
            first = n;
            last = first;
        }else{
            last.next = n;
            last = n;
        }
    }

    public Node dequeue(){
        if(first == null){
            return null;
        }else{
            Node temp = new Node(first.val);
            first = first.next;
            return temp;
        }   
    }
}


值得一提的是,Java标准库中已经包含一个叫做Stack的类,链表也可以作为一个队列使用(add()和remove())。(链表实现队列接口)如果你在面试过程中,需要用到栈或队列解决问题时,你可以直接使用它们。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: