- 代码一:
- import edu.princeton.cs.algs4.Bag;
- import edu.princeton.cs.introcs.StdIn;
- import edu.princeton.cs.introcs.StdOut;
- public class TestBag {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Bag<Double> numbers = new Bag<Double>();
- // 由控制台输入一组double类型的数,添加到包numbers中。
- while (!StdIn.isEmpty()) {
- numbers.add(StdIn.readDouble());
- }
- int N = numbers.size();
- // 求均值
- double sum = 0.0;
- for (double x : numbers)
- sum += x;
- double mean = sum / N;
- // 求方差
- sum = 0.0;
- for (double x : numbers)
- sum += Math.pow((x - mean), 2);
- double std = Math.sqrt(sum / (N - 1));
- StdOut.print("mean is: " + mean);
- StdOut.print("\\nstd is: " + std);
- }
- }
- 代码二:
- import edu.princeton.cs.introcs.StdIn;
- import edu.princeton.cs.introcs.StdOut;
- public class TestQueue2 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Queue<String> q = new Queue<String>();
- while (!StdIn.isEmpty()) {
- String item = StdIn.readString();
- // 如果输入的不是“-”,则进队
- if (!item.equals("-"))
- q.enqueue(item);
- // 如果输入的是“-”,则表示出对,且先进的先出
- else if (!q.isEmpty())
- StdOut.print(q.dequeue() + " ");
- }
- StdOut.println("(" + q.size() + " left on queue)");
- }
- }
- 代码三:
- import edu.princeton.cs.introcs.StdIn;
- import edu.princeton.cs.introcs.StdOut;
- public class TestStack {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Stack<String> stack = new Stack<String>();
- while (!StdIn.isEmpty()) {
- String item = StdIn.readString();
- // 如果输入的不是“-”,则进栈
- if (!item.equals("-"))
- stack.push(item);
- // 如果输入的是“-”,则出栈,且后进的先出。
- else if (!stack.isEmpty())
- StdOut.print(stack.pop() + " ");
- }
- StdOut.println("(" + stack.size() + " left on stack)");
- }
- }
- 代码四:
- import edu.princeton.cs.algs4.Queue;
- import edu.princeton.cs.algs4.Stack;
- import edu.princeton.cs.introcs.StdIn;
- import edu.princeton.cs.introcs.StdOut;
- public class Reverse {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- // 结合Queue和Stack,实现将字符串倒着输出的功能。
- Queue<String> q = new Queue<String>();
- Stack<String> stack = new Stack<String>();
- while (!StdIn.isEmpty())
- q.enqueue(StdIn.readString());
- while (!q.isEmpty())
- stack.push(q.dequeue());
- for (String v : stack)
- StdOut.print(v + " ");
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/2508201513549.html
来源: http://www.codesnippet.cn/detail/2508201513549.html