/****** 檔名:JPA06_1.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ public class JPA06_1 { public static void main(String args[]) { BoundedStack s = new BoundedStack(3); s.push("abc"); s.push("def"); s.push("ghi"); s.push("jkl"); System.out.println(s.pop()); System.out.println(s.pop()); System.out.println(s.pop()); System.out.println(s.empty()); } } class BoundedStack { String stack[]; int top=-1; int size=0; BoundedStack(int a) { size=a; stack=new String[size]; } void push(String a) { if(top>=size-1) { System.out.println("stack-overflow"); } else { top++; stack[top]=a; } } String pop() { if(top<0) { return "stack-is-empty"; } else { String temp=stack[top]; top--; return temp; } } boolean empty() { if(size<=0) { return true; } else { return false; } } }
/****** 檔名:JPA06_2.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ import java.util.LinkedList; public class JPA06_2 { public static void main(String args[]) { UnboundedStack s = new UnboundedStack(); s.push("abc"); s.push("def"); s.push("ghi"); s.push("jkl"); System.out.println(s.pop()); System.out.println(s.pop()); System.out.println(s.pop()); System.out.println(s.empty()); System.out.println(s.pop()); System.out.println(s.empty()); } } class UnboundedStack { LinkedList<String> stack; UnboundedStack() { stack=new LinkedList<String>(); } void push(String a) { stack.addFirst(a); } String pop() { if(stack.isEmpty()) { return "stack is empty"; } else { String temp=stack.getFirst(); stack.removeFirst(); return temp; } } boolean empty() { return stack.isEmpty(); } }
/****** 檔名:JPA06_3.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ import java.util.LinkedList; public class JPA06_3 { public static void main(String args[]) { TraceUnboundedStack s2 = new TraceUnboundedStack(); s2.push("abc"); s2.push("def"); s2.push("ghi"); s2.push("jkl"); System.out.println(s2.getSize()); System.out.println(s2.top()); System.out.println(s2.pop()); System.out.println(s2.pop()); System.out.println(s2.pop()); System.out.println(s2.empty()); System.out.println(s2.pop()); System.out.println(s2.empty()); System.out.println(s2.getSize()); } } class TraceUnboundedStack extends UnboundedStack { TraceUnboundedStack() { stack=new LinkedList<String>(); } void push(String a) { System.out.println("Pushing:"+a); super.push(a); } String pop() { String temp=super.pop(); System.out.println("Poping:"+temp); return temp; } boolean empty() { return super.empty(); } int getSize() { return stack.size(); } } abstract class Stack { String top() { String temp=this.pop(); this.push(temp); return temp; } abstract void push(String a); abstract String pop(); abstract boolean empty(); } class UnboundedStack extends Stack { LinkedList<String> stack; UnboundedStack() { stack=new LinkedList<String>(); } void push(String a) { stack.addFirst(a); } String pop() { if(stack.isEmpty()) { return "stack is empty"; } else { String temp=stack.getFirst(); stack.removeFirst(); return temp; } } boolean empty() { return stack.isEmpty(); } } class BoundedStack extends Stack { String stack[]; int top=-1; int size=0; BoundedStack(int a) { size=a; stack=new String[size]; } void push(String a) { if(top>=size-1) { System.out.println("stack-overflow"); } else { top++; stack[top]=a; } } String pop() { if(top<0) { return "stack-is-empty"; } else { String temp=stack[top]; top--; return temp; } } boolean empty() { if(size<=0) { return true; } else { return false; } } }
/****** 檔名:JPA06_4.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ import java.util.LinkedList; public class JPA06_4 { public static void main(String args[]) { UnboundedStack s = new UnboundedStack(); s.push("abc"); s.push(2); s.push("ghi"); System.out.println(s.top()); System.out.println(s.pop()); System.out.println(s.pop()); System.out.println(s.pop()); System.out.println(s.pop()); } } abstract class Stack<T> { T top() { T temp=this.pop(); this.push(temp); return temp; } abstract void push(T a); abstract T pop(); abstract boolean empty(); } class UnboundedStack<T> extends Stack<T> { LinkedList<T> stack; UnboundedStack() { stack=new LinkedList<T>(); } void push(T a) { stack.addFirst(a); } T pop() { if(stack.isEmpty()) { return null; } else { T temp=stack.getFirst(); stack.removeFirst(); return temp; } } boolean empty() { return stack.isEmpty(); } }
/****** 檔名:JPA06_5.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ import java.util.LinkedList; public class JPA06_5 { public static void main(String args[]) { try { UnboundedStack s = new UnboundedStack(); s.push("abc"); s.push(2); s.push("ghi"); System.out.println(s.top()); System.out.println(s.pop()); System.out.println(s.pop()); System.out.println(s.pop()); System.out.println(s.pop()); } catch(NewException n) { System.out.println(n); } } } class NewException extends Exception { String exc; NewException(String a) { exc=a; } public String toString() { return exc; } } abstract class Stack<T> { T top()throws NewException { T temp=this.pop(); this.push(temp); return temp; } abstract void push(T a); abstract T pop()throws NewException; abstract boolean empty(); } class UnboundedStack<T> extends Stack<T> { LinkedList<T> stack; UnboundedStack() { stack=new LinkedList<T>(); } void push(T a) { stack.addFirst(a); } T pop()throws NewException { if(stack.isEmpty()) { throw new NewException("stack is empty!"); } else { T temp=stack.getFirst(); stack.removeFirst(); return temp; } } boolean empty() { return stack.isEmpty(); } }
沒有留言:
張貼留言