模拟线性队列

来源:互联网 发布:网页注入js代码 编辑:程序博客网 时间:2024/06/15 15:47

用数组模拟队列

package l5;/** * * @ClassName: MyQueue * @Description: TODO(用数组模拟队列) * @author chen_jf* @date 2017年4月27日 上午10:34:22 * */public class MyQueue {private int size;private int front;private int rear;private Object[] queue;public MyQueue() {this.size = 10;this.front=-1;this.rear=-1;queue = new Object[size];}public MyQueue(int size){this.size = size;this.front=-1;this.rear=-1;queue = new Object[size];}/** * * @Title: inQueue * @Description: TODO(入队) * @param @param obj  参数说明 * @return void    返回类型 * @throws */public void inQueue(Object obj){if(this.rear+1<size){rear++;queue[rear]=obj;System.out.println(obj+"入队");}else{System.out.println("队列已满");}}/** * * @Title: outQueue * @Description: TODO(出队) * @param @return  参数说明 * @return Object    返回类型 * @throws */public Object outQueue(){Object obj = null;if(this.front!=this.rear){front++;obj=queue[front];System.out.println(obj+"出队");}else{System.out.println("队列为空");}return obj;}/** * * @Title: display * @Description: TODO(遍历) * @param   参数说明 * @return void    返回类型 * @throws */public void display(){if(front != rear){for(int i = front+1;i<rear+1;i++){System.out.println(queue[i]);}}else{System.out.println("队列中无数据");}}}

package l5;/** * * @ClassName: Test * @Description: TODO(这里用一句话描述这个类的作用) * @author chen_jf* @date 2017年4月27日 上午10:50:26 * */public class Test {public static void main(String[] args) {MyQueue queue = new MyQueue();queue.inQueue("1");queue.inQueue("2");queue.inQueue("3");queue.inQueue("4");queue.inQueue("5");queue.inQueue("6");queue.inQueue("7");queue.inQueue("8");queue.inQueue("9");queue.inQueue("10");queue.inQueue("11");queue.inQueue("12");queue.inQueue("13");System.out.println("队列中数据:");queue.display();queue.outQueue();queue.outQueue();queue.outQueue();queue.outQueue();queue.outQueue();queue.outQueue();queue.outQueue();queue.outQueue();queue.outQueue();queue.outQueue();queue.display();queue.inQueue("11");queue.inQueue("12");queue.inQueue("13");}}

输出:1入队2入队3入队4入队5入队6入队7入队8入队9入队10入队队列已满队列已满队列已满队列中数据:123456789101出队2出队3出队4出队5出队6出队7出队8出队9出队10出队队列中无数据队列已满队列已满队列已满





用链表模拟队列

package l5;/** * * @ClassName: Queue * @Description: TODO(用链表模拟队列) * @author chen_jf* @date 2017年4月27日 上午11:06:56 * */public class QueueTest {Node head;public QueueTest() {head = new Node();}/** * * @Title: inQueue * @Description: TODO(入队) * @param @param data  参数说明 * @return void    返回类型 * @throws */public void inQueue(String data) {Node p = head;Node t = new Node(data);while (p.getNext() != null) {p = p.getNext();}p.setNext(t);System.out.println(data+"入队");}/** * * @Title: outQueue * @Description: TODO(出队) * @param   参数说明 * @return void    返回类型 * @throws */public String outQueue() {String data = "";if (head.getNext() != null) {data = head.getNext().getData();head.setNext(head.getNext().getNext());System.out.println(data+"出队");} else {System.out.println("队列为空");}return data;}/** * * @Title: display * @Description: TODO(遍历) * @param   参数说明 * @return void    返回类型 * @throws */public void display() {Node p = head;while(p.getNext()!=null){System.out.println(p.getNext().getData());p=p.getNext();}}}

package l5;/** * * @ClassName: Node * @Description: TODO(这里用一句话描述这个类的作用) * @author chen_jf* @date 2017年4月27日 上午11:03:52 * */public class Node {private String data;private Node next;public Node() {this.data = "";this.next = null;}public Node(String data)  {this.data = data;this.next = null;}/** * @return data */public String getData() {return data;}/** * @param data 要设置的 data */public void setData(String data) {this.data = data;}/** * @return next */public Node getNext() {return next;}/** * @param next 要设置的 next */public void setNext(Node next) {this.next = next;}}

package l5;/** * * @ClassName: Test * @Description: TODO(这里用一句话描述这个类的作用) * @author chen_jf* @date 2017年4月27日 上午10:50:26 * */public class Test {public static void main(String[] args) {QueueTest queue = new QueueTest();queue.inQueue("1");queue.inQueue("2");queue.inQueue("3");queue.inQueue("4");queue.inQueue("5");queue.outQueue();queue.outQueue();System.out.println("队列中数据:");queue.display();}}

输出:1入队2入队3入队4入队5入队1出队2出队队列中数据:345


0 0
原创粉丝点击