Java版本和C++版本簡(jiǎn)單Stack程序

字號(hào):

Java版本:
    源代碼Stack.java
    以下是引用片段:
    package org;
    public class Stack ...{
    public static class Link ...{
    protected Object data;
    protected Link next;
    public Link(Object data, Link next) ...{
    this.data = data;
    this.next = next;
    }
    }
    private Link head = null;
    public void push(Object data) ...{
    head = new Link(data, head);
    }
    public Object peek() ...{
    return head.data;
    }
    public Object pop() ...{
    if (head == null)
    return null;
    Object o = head.data;
    head = head.next;
    return o;
    }
    } 測(cè)試代碼StackTest.java
    package org;
    import junit.framework.TestCase;
    public class StackTest extends TestCase ...{
    public void test1() ...{
    Stack s = new Stack();
    assertEquals(null, s.pop());
    s.push("a");
    s.push("b");
    assertEquals("b", s.peek());
    assertEquals("b", s.pop());
    assertEquals("a", s.pop());
    assertEquals(null, s.pop());
    }
    public void test2() ...{
    Stack s = new Stack();
    assertEquals(null, s.pop());
    s.push(new Integer(1));
    s.push(new Integer(2));
    assertEquals(2, ((Integer)s.peek()).intValue());
    assertEquals(2, ((Integer)s.pop()).intValue());
    assertEquals(1, ((Integer)s.pop()).intValue());
    assertEquals(null, s.pop());
    }
    }