算法-第四版-练习1.3.6解答
2016-09-28 16:30
405 查看
下面这段代码对队列q进行了什么操作?
显然,将队列中的元素进行了逆序。
测试代码:
结果如下:
算法-第四版-1.3 背包、队列和栈-习题索引汇总
算法-第四版习题索引汇总
Stack<String> stack = new Stack<String>(); while (!q.isEmpty()) stack.push(q.dequeue()); while (!stack.isEmpty()) q.enqueue(stack.pop());
显然,将队列中的元素进行了逆序。
/** * Description : * Author : mn@furzoom.com * Date : Sep 28, 2016 10:21:54 AM * Copyright (c) 2013-2016, http://furzoom.com All Rights Reserved. */ package com.furzoom.lab.algs.ch103; import java.util.Iterator; import edu.princeton.cs.algs4.StdIn; /** * ClassName : Queue <br> * Function : TODO ADD FUNCTION. <br> * date : Sep 28, 2016 10:21:54 AM <br> * * @version */ public class Queue<Item> implements Iterable<Item> { private Node first; private Node last; private int n; private class Node { Item item; Node next; } public boolean isEmpty() { return first == null; } public int size() { return n; } public void enqueue(Item item) { Node oldlast = last; last = new Node(); last.item = item; last.next = null; if (isEmpty()) { first = last; } else { oldlast.next = last; } n++; } public Item dequeue() { Item item = first.item; first = first.next; if (isEmpty()) { last = null; } n--; return item; } @Override public Iterator<Item> iterator() { return new QueueIterator(); } private class QueueIterator implements Iterator<Item> { private Node current = first; @Override public boolean hasNext() { return current != null; } @Override public Item next() { Item item = current.item; current = current.next; return item; } } }
测试代码:
/**
* Description :
* Author : mn@furzoom.com
* Date : Sep 28, 2016 4:20:38 PM
* Copyright (c) 2013-2016, http://furzoom.com All Rights Reserved.
*/
package com.furzoom.lab.algs.ch103;
/**
* ClassName : E10306 <br>
* Function : TODO ADD FUNCTION. <br>
* date : Sep 28, 2016 4:20:38 PM <br>
*
* @version
*/
public class E10306
{
public static void test(Queue<String> q)
{
Stack<String> stack = new Stack<String>(); while (!q.isEmpty()) stack.push(q.dequeue()); while (!stack.isEmpty()) q.enqueue(stack.pop());
}
public static void main(String[] args)
{
Queue<String> q = new Queue<String>();
q.enqueue("a");
q.enqueue("b");
q.enqueue("c");
q.enqueue("d");
for (String s : q)
System.out.print(s + " ");
System.out.println();
test(q);
for (String s : q)
System.out.print(s + " ");
System.out.println();
}
}
结果如下:
a b c d d c b a
算法-第四版-1.3 背包、队列和栈-习题索引汇总
算法-第四版习题索引汇总
相关文章推荐
- 算法-第四版-练习1.3.6解答
- 算法-第四版-练习1.3.20解答
- 算法-第四版-练习1.3.30解答
- 算法-第四版-练习1.3.15解答
- 算法-第四版-练习1.3.3解答
- 算法-第四版-练习1.2.6解答
- 算法-第四版-练习1.2.11解答
- 算法-第四版-练习1.2.13解答
- 算法-第四版-练习1.3.31解答
- 算法-第四版-练习1.3.14解答
- 算法-第四版-练习1.3.2解答
- 算法-第四版-练习1.2.5解答
- 算法-第四版-练习1.2.4解答
- 算法-第四版-练习1.2.10解答
- 算法-第四版-练习1.2.14解答
- 算法-第四版-练习1.3.9解答
- 算法-第四版-练习1.3.15解答
- 算法-第四版-练习1.3.21解答
- 算法-第四版-练习1.3.27解答
- 算法-第四版-练习1.3.30解答