基于数组方式的队列的实现
package com.study.link;
/**
* 基于数组的队列
* @author Administrator
*
*/
public class ArrayQueue {
private Node[] nodeArray;
private int last;
public ArrayQueue(int length){
nodeArray = new Node[length];
}
/**
* 入队
* @param n
*/
public void enqueue(Node node){
nodeArray[last] = node;
last++;
}
/**
* 出队
* @return
*/
public Node denqueue(){
if(last>0){
last--;
Node node = nodeArray[last];
return node;
}
return null;
}
public static void main(String[] args) {
ArrayQueue queue = new ArrayQueue(10);
queue.enqueue(new Node(1));
queue.enqueue(new Node(2));
queue.enqueue(new Node(3));
queue.enqueue(new Node(4));
queue.enqueue(new Node(5));
while(queue.last>0){
System.out.println(queue.denqueue().getValue());
}
}
}
基于节点
package com.study.link;
/**
* 基于节点的方式实现队列
* 先进先出
* @author Administrator
*
*/
public class NodeQueue {
private Node first;
private Node last;
/**
* 入队
* @param n
*/
public void enqueue(Node node){
if(first==null){
first = node;
last = node;
}else{
last.setNext(node);
last = node;
}
}
/**
* 出队
* @return
*/
public Node denqueue(){
if(first == null){
return null;
}else{
Node temp = new Node(first.getValue());
first = first.getNext();
if(last == temp){
last = first;
}
return temp;
}
}
public static void main(String[] args) {
NodeQueue queue = new NodeQueue();
queue.enqueue(new Node(1));
queue.enqueue(new Node(2));
queue.enqueue(new Node(3));
queue.enqueue(new Node(4));
queue.enqueue(new Node(5));
queue.enqueue(new Node(6));
queue.enqueue(new Node(7));
queue.enqueue(new Node(8));
queue.enqueue(new Node(9));
while(queue.first!=null){
System.out.println(queue.denqueue().getValue());
}
}
}
package com.study.link;
/**
* 链表节点
* 每个链表都有本身值和指向下一个节点的链接
* @author Administrator
*
*/
public class Node {
private Object value;
private Node next;
public Node(Object value){
this.value = value;
next = null;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
本文介绍了基于数组和节点两种方式实现队列的方法,包括入队、出队操作及其实现细节。
972

被折叠的 条评论
为什么被折叠?



