Stack: Difference between revisions

From Rosetta Code
Content added Content deleted
Line 36:
}
 
'''Compiler:''' JDK 1.5 with Generics
 
// JDK 1.5 with Generics
Line 46:
return (first == null);
}
public ObjectT Pop() {
if (first == null)
throw new Exception("Can't Pop from an empty Stack.");
else {
ObjectT temp = first.Value;
first = first.Next;
return temp;
}
}
public void Push(ObjectT o) {
first = new Node(o, first);
}
class Node {
public Node Next;
public ObjectT Value;
public Node(ObjectT value) {
this(value, null);
}
public Node(ObjectT value, Node next) {
Next = next;
Value = value;

Revision as of 03:09, 24 February 2007

{Task}

C++

Java

 public class Stack 
 {
     private Node first = null;
     public boolean isEmpty {
         return (first == null);
     }
     public Object Pop() {
         if (first == null) 
             throw new Exception("Can't Pop from an empty Stack.");
         else {
             Object temp = first.Value;
             first = first.Next;
             return temp;
         }
     }
     public void Push(Object o) {
         first = new Node(o, first);
     }
     class Node {
         public Node Next;
         public Object Value;
         public Node(Object value) {
             this(value, null); 
         }
         public Node(Object value, Node next) {
             Next = next;
             Value = value;
         }
     }
 }

Compiler: JDK 1.5 with Generics

 // JDK 1.5 with Generics
 public class Stack<T>
 {
     private Node first = null;
     public boolean isEmpty {
         return (first == null);
     }
     public T Pop() {
         if (first == null) 
             throw new Exception("Can't Pop from an empty Stack.");
         else {
             T temp = first.Value;
             first = first.Next;
             return temp;
         }
     }
     public void Push(T o) {
         first = new Node(o, first);
     }
     class Node {
         public Node Next;
         public T Value;
         public Node(T value) {
             this(value, null); 
         }
         public Node(T value, Node next) {
             Next = next;
             Value = value;
         }
     }
 }

C#

 public class Stack
 {
     private Node first = null;
     public bool Empty {
         get {
             return (first == null);
         }
     }
     public object Pop() {
         if (first == null) 
             throw new Exception("Can't Pop from an empty Stack.");
         else {
             object temp = first.Value;
             first = first.Next;
             return temp;
         }
     }
     public void Push(object o) {
         first = new Node(o, first);
     }
     class Node
     {
         public Node Next;
         public object Value;
         public Node(object value): this(value, null) {}
         public Node(object value, Node next) {
             Next = next;
             Value = value;
         }
     }
 }