首页主机资讯java先进先出数据结构怎么实现

java先进先出数据结构怎么实现

时间2023-12-12 15:22:04发布访客分类主机资讯浏览1281
导读:在Java中,可以使用以下几种数据结构来实现先进先出(FIFO)的特性: 队列(Queue):队列是先进先出的线性数据结构,可以使用Java中的LinkedList类来实现。LinkedList类提供了常用的队列操作方法,如add( 、o...

在Java中,可以使用以下几种数据结构来实现先进先出(FIFO)的特性:

  1. 队列(Queue):队列是先进先出的线性数据结构,可以使用Java中的LinkedList类来实现。LinkedList类提供了常用的队列操作方法,如add()、offer()、remove()、poll()等。
import java.util.LinkedList;
    
import java.util.Queue;


public class FIFOQueueExample {

    public static void main(String[] args) {
    
        QueueString>
     queue = new LinkedList>
    ();
    

        // 入队操作
        queue.add("A");
    
        queue.add("B");
    
        queue.offer("C");
    

        // 出队操作
        String element = queue.remove();
     // A
        System.out.println(element);
    

        String peekElement = queue.peek();
     // B
        System.out.println(peekElement);

    }

}
    
  1. 栈(Stack):尽管栈是一种后进先出(LIFO)的数据结构,但是可以使用LinkedList类的push()和pop()方法模拟先进先出的行为。
import java.util.LinkedList;


public class FIFOStackExample {

    public static void main(String[] args) {
    
        LinkedListString>
     stack = new LinkedList>
    ();
    

        // 入栈操作
        stack.push("A");
    
        stack.push("B");
    
        stack.push("C");
    

        // 出栈操作
        String element = stack.pop();
     // C
        System.out.println(element);
    

        String peekElement = stack.peek();
     // B
        System.out.println(peekElement);

    }

}

  1. 数组(Array):可以使用数组来实现先进先出的特性。使用一个指针来指示队列的头部,每次出队操作后将指针向后移动一位。
public class FIFODynamicArray {
    
    private int[] array;
    
    private int head;
    
    private int tail;
    
    private int size;


    public FIFODynamicArray(int capacity) {
    
        array = new int[capacity];
    
        head = 0;
    
        tail = 0;
    
        size = 0;

    }


    public void enqueue(int element) {

        if (size == array.length) {
    
            throw new IllegalStateException("Queue is full");

        }
    
        
        array[tail] = element;
    
        tail = (tail + 1) % array.length;
    
        size++;

    }


    public int dequeue() {

        if (size == 0) {
    
            throw new IllegalStateException("Queue is empty");

        }
    
        
        int element = array[head];
    
        head = (head + 1) % array.length;
    
        size--;
    

        return element;

    }


    public boolean isEmpty() {
    
        return size == 0;

    }

}
    

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: java先进先出数据结构怎么实现
本文地址: https://pptw.com/jishu/577015.html
win7硬件加速开启不了如何解决 ubuntu中怎么清理内存缓存

游客 回复需填写必要信息