class A{
    public A a = null;
    public A(class a_){
        a = a_;
    }
}

解决方案 »

  1.   

    很简单,以下是书上的代码:
    链表类:
    public class Link {
      private Object element;
      private Link next;
      Link(Object it,Link nextval)
      { element = it; next = nextval;}
      Link(Link nextval)
      {next = nextval;}
      Link next(){return next;}
      Link setNext(Link nextval)
      { return next = nextval;}
      Object element()
      {return element;}
      Object setElement(Object it)
      {return element = it;}
    }
    实现对链表操作的,你可以继承添加更多的方法:
    public class LList implements List{
      private Link head;
      private Link tail;
      protected Link curr;  LList(int sz){setup();}
      LList() {setup();}  private void setup()
      {
        tail = head = curr = new Link(null);
      }
      public void clear() {
        head.setNext(null);
        curr = tail = head;
      }
      public void insert(Object it){
        curr.setNext(new Link(it,curr.next()));
        if(tail == curr)
          tail = curr.next();  }
      public void append(Object it) {
        tail.setNext(new Link(it,null));
        tail = tail.next();
      }
      public Object remove(){
        if(! isInList()) return null;
        Object it = curr.next().element();
        if(tail == curr.next()) tail = curr;
        curr.setNext(curr.next().next());
        return it;
      }
      public void setFirst(){
        curr = head;  }
      public void next() {
        if(curr != null) curr = curr.next();
      }
      public void prev() {
        if((curr != null) || (curr == head)) {
          curr = null; return;
        }
        Link temp = head;
        while((temp != null) && (temp.next() != curr))
          temp = temp.next();
          curr = temp;  }
      public int length(){
        int n = 0;
        for(Link temp = head.next();temp != null;temp = temp.next())
          n++;
              return n;
      }
      public void setPos(int pos) {
        curr = head;
        for(int i = 0;(curr != null) && (i < pos);i++)
          curr = curr.next();
      }
      public void setValue(Object it){
        Assert.notFalse(isInList(),"Error");
        curr.next().setElement(it);
      }
      public Object currValue() {
        if(! isInList()) return null;
        return curr.next().element();
      }
      public boolean isEmpty()
      {
        return head.next() == null;
      }
      public boolean isInList(){
        return (curr != null) && (curr.next() != null);
      }
      public void print(){
        if(isEmpty()) System.out.println("()");
          else{
            System.out.print("(");
            for(setFirst();isInList();next())
              System.out.print(currValue() + " ");
              System.out.println(")");
          }
      }}