日期:2014-05-20  浏览次数:20741 次

运行一个关于栈的例子,有几个错误,不知是什么原因,请大家赐教。
import   java.util.*;
class   MyStack
{
private   LinkedList   ll   =   new   LinkedList();

public   void   push(Object   o)
{
ll.addFirst(o);
}

public   Object   pop()
{
return   ll.remove();
}

public   Object   peek()
{
return   ll.getFirst();
}

public   boolean   empty()
{
return   ll.isEmpty();
}

public   static   void   main(String[]   args)
{
MyStack   ms   =   new   MyStack();
ms.push( "one ");
ms.push( "two ");
ms.push( "three ");
System.out.println(pop());
System.out.println(peek());
System.out.println(pop());
System.out.println(empty());
}
}

我是用JDK1.6的。

------解决方案--------------------
你在打印输出的里面都没有加上“ms.”而直接使用了“pop()”等这些方法。

我加上去后,试了试~~好的。
------解决方案--------------------
pop,peek,empty等方法是实例方法,必须通过对象名调用
------解决方案--------------------
package stack;

/**
*
* @author sw
*/
import java.util.*;
public class MYStack <E>
{
private E e;
private LinkedList ll = new LinkedList <E> ();

@SuppressWarnings( "unchecked ")
public void push(E e)
{
ll.addFirst(e);
}

@SuppressWarnings( "unchecked ")
public E pop()
{
return (E)ll.remove();
}

@SuppressWarnings( "unchecked ")
public E peek()
{
return (E)ll.getFirst();
}

public boolean empty()
{
return ll.isEmpty();
}

public static void main(String[] args)
{
MYStack ms = new MYStack <String> ();
ms.push( "one ");
ms.push( "two ");
ms.push( "three ");
System.out.println(ms.pop());
System.out.println(ms.peek());
System.out.println(ms.pop());
System.out.println(ms.empty());
}
}

------解决方案--------------------
bao110908(讨厌蟑螂) ( ) 信誉:100 2007-7-24 13:19:07 得分: 0

正确了
------解决方案--------------------
instance method not static method
------解决方案--------------------
编译的时候发的警告,只是警告,类型不安全.
不影响运行.