DStack.java /** * Interface for a stack of primitive doubles. * @version CSE326 Sp09 * * NOTE: The comments for this interface are horrible! You will * need to write something better for your implementations. */ interface DStack { /** * is empty? */ boolean isEmpty(); /** * push */ void push(double d); /** * pop * @return the deleted value * @throws EmptyStackException if stack is empty */ double pop(); /** * peek * @throws EmptyStackException if stack is empty */ double peek(); }
Reverse.java(2)行数オーバーしたので... try { // // Set up the input file to be read, and the output file to be written // BufferedReader fileIn = new BufferedReader(new FileReader(args[1])); PrintWriter fileOut = new PrintWriter(new BufferedWriter(new FileWriter(args[2])));
// // Read the first line of the .dat file. We want to store the // "sample rate" in a variable, but we can ignore the rest // of the line. We step through the first line one token (word) // at a time using the StringTokenizer. The fourth token // is the one we want (the sample rate). // StringTokenizer str; String oneLine; int sampleRate; String strJunk;
oneLine = fileIn.readLine();
str = new StringTokenizer(oneLine); strJunk = str.nextToken(); // Read in semicolon strJunk = str.nextToken(); // Read in "Sample" strJunk = str.nextToken(); // Read in "Rate" sampleRate = Integer.parseInt(str.nextToken()); // Read in sample rate
// // Read in the file and place values from the second column // in the stack. The first column values are thrown away. // We stop reading if we reach the end of the file. //
DStack s; if (useList) s = new ListStack(); else s = new ArrayStack(); String timestep; double data;
int count = 0; while ((oneLine = fileIn.readLine()) != null) { if (oneLine.charAt(0) == ';') { continue; } str = new StringTokenizer(oneLine); timestep = str.nextToken(); // Read in time step value from first column data = Double.parseDouble(str.nextToken()); // Read in data value from second column s.push(data); count++; }
Reverse.java(4)行数オーバーしたので... // // Now we are ready to output the data values to output file. // But first, we need to output the header line // "; Sample Rate <sample rate>" // fileOut.println("; Sample Rate " + sampleRate);
// Since the first column consists of numbers which start // at 0 and increase by 1/sampleRate every time slice, we'll // just use numSteps to recalculate these numbers. int numSteps = 0;
// Finally, we print the values in reverse order (by popping // them off the stack). The first column consists of numbers // which start at 0 and increase by 1/sampleRate per row, so // we'll use numSteps/sampleRate to recalculate the appropriate // values. Uniform spacing will be accomplished by printing a tab.