Java中的栈和队列

概念
栈(stack)是一种只允许在一端进行插入和删除的特殊线性表结构,进行数据插入和删除的一端叫栈顶,另一端则是栈底。

特性
先进后出

栈的实现

class MyStack<E>
{
    private E[] array =(E[]) new Object[100];
    private int size = 0;

    public void push(E e){
        if(size == 100)
            return;

        array[size++] = e;
    }

    public E pop(){
        if(empty())
            return null;
        E e = array[size - 1];
        size--;
        return e;
    }

    E peek(){
        if(empty())
            return null;
        return array[size - 1];
    }

    boolean empty(){
        return 0 == size;
    }
}

队列

概念
队列是一种只允许在一端进行数据插入操作、在另一端进行删除操作的特殊线性表结构。进行删除操作的一端为队头,进行插入操作的为队尾。

特性
先进先出

队列的实现

public class MyQueue<E> {
    private Node<E> front;
    private Node<E> rear;
    private int size;

    MyQueue()
    {
        front = rear = new Node<E>();
        size = 0;
    }
    boolean offer(E e)
    {
        Node<E> node = new Node<>();
        rear = rear.next;
        return true;
    }
    E poll()
    {
        if(isEmpty())
        return null;

        E ret = (E) front.next.data;
        front.next = front.next.next;
        size--;
        return ret;
    }
    E peek()
    {
        if(isEmpty())
            return null;
        return (E)front.next.data;
    }
    int size()
    {
        return size;
    }
    boolean isEmpty()
    {
        return 0 == size;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_43452252/article/details/104452575
今日推荐