问题可以挑挑1。 if (hasNullHead){
head=new Obj();
}
hasNullHead->head不为null,我想我怎么看了半天好晕呢?
2。while (!s.equals(null)){
这个未免比较强,还不如直接写true呢不过总之来说问题不在于你代码写怎样,而是能不能体现一个思路,关键是自圆其说~~。。

解决方案 »

  1.   

    同意楼上的,记得学数据结构的时候都没什么代码的问题,都思路啊!结果现在用个JAVA写个这种东西都没什么经验 汗啊!
      

  2.   

    while (!s.equals(null))是写的不好
    直接s!=null
    就行了
    觉得写个双向链表的栈有点变态啊。
    if (hasNullHead){
    head=new Obj();
    }
    我是记得数据结构中有,把链表分为不带表头,带空表头。所以如果要求带空表头,就创建一个对象(其data为空。那么这个栈的head就是这个对象的引用。当然head.next是栈顶对象的引用了.如果不带空表头,那head直接指向栈顶了。(在java里来说就是栈顶对象的一个引用)。
    其实这个如果用c++写的话,应该要简单一些。不过当时要求让我用java写。没办法
      

  3.   

    hehe要是s为空,就崩溃拉不过JAVA不崩溃呀
      

  4.   

    public Obj search(Object o){
    if (hasNullHead&&head.next==null||
         !hasNullHead&&head==null){
         return null;
    }
    Obj s=head;
    while (!s.equals(null)){
    if (s.data.equals(o)){
    return s;
    }else{
    s=s.next;
    }
    }
    return null;
    }
     这样改就不会出现异常了。。