Java用链表实现队列

来源:互联网 发布:unity3d大作动画 编辑:程序博客网 时间:2024/05/21 17:35

定义节点类:

public class Node<T> {T data;Node next;public Node(){}public Node(T t){this.data = t;}}

定义自己的链表队列类:

public class My_linkedQueue<T> implements My_queue<T> {private Node head;private Node rear;private int size;public My_linkedQueue() {head = null;rear = null;size = 0;}@Overridepublic void add(T t) {Node node = new Node<>(t);if (isEmpty()) {//如果队列为空,头指针第一次需要后移一位head = node;} else {rear.next = node;}rear = node;size++;}@Overridepublic T remove() {T tmp;if(isEmpty()){new NullPointerException("queue is empty!");tmp = null;} else {tmp = (T) head.data;head = head.next;size--;}return tmp;}@Overridepublic int size() {return size;}@Overridepublic boolean isEmpty() {return head == null;}@Overridepublic T front() {return (T) head.data;}}
定义测试类:

public class arrayTest {public static void main(String[] args){My_linkedQueue<Integer> ar = new My_linkedQueue<>();ar.add(1);ar.add(2);ar.add(3);ar.add(4);ar.add(1);ar.add(2);ar.add(3);ar.add(4);while(!ar.isEmpty()){Integer tmp = ar.remove();System.out.println(tmp);}}}






0 0
原创粉丝点击