101003285 發表於 2011-10-16 01:49:38

Java Stack題目

用Stack堆疊
寫出一個可以計算出
(2 * 5 - 1 * 2) / (11 - 9)
這類型的程式
就要一個一個push進去
在pop出來時進行判斷
來計算

幫忙一下
不太會寫:'(

101003285 發表於 2011-10-16 14:37:19

這題目的stack需要用到
import java.io.*;
import java.util.*;
        class Node {
          int data;
          Node next;
        }
        // 堆疊
        class Stack {
          private Node top;   
          // 加入資料至頂端
          void add(Node node) {
                node.next = top;
                top = node;
          }
          // 傳回頂端資料
          Node top() {
                return top;
          }
          // 列出堆疊內容
          List<Node> list() {
                List<Node> nodes = new ArrayList<Node>();
                Node tmp = top;
                while(tmp != null) {
                    nodes.add(tmp);
                    tmp = tmp.next;
                }
                return nodes;
          }
        }
        public class Stack{
                public static void main(String[] args) throws IOException {
                        Stack stack = new Stack();
                        int x=1;
                        System.out.println("Start Push:");
                for(int a=0;a<10;a++){
                        int input = (int)(Math.random()*10+1);
                        Node node = new Node();
                        node.data = input;
                        stack.add(node);
                        System.out.println("Push"+(a+1)+" : "+stack.top().data);
                }
                System.out.println("\nStart Pop:");
                for(Node n : stack.list()){
                        System.out.println("Pop"+x+" : "+n.data);
                        x++;
                }
                }
    }

這一個程式的Stack
不可使用java內建

101003285 發表於 2011-10-18 18:35:02

題目要求要用Stack來運算
因為運算式是要用BufferedReader來輸入
所以不會直接算出來
頁: [1]
查看完整版本: Java Stack題目