Stack

From Rosetta Code
Revision as of 03:07, 24 February 2007 by 74.56.102.15 (talk) (New page: {Task} ==C++== ==Java== public class Stack { private Node first = null; public boolean isEmpty { return (first == null); } public Object Pop(...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

{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;
       }
   }

}


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;
       }
   }

}