现在我在看java版的数据结构
看到链表不明
这是链表的结点class Link
   {
   public int iData;              // data item
   public double dData;           // data item
   public Link next;              // next link in list
// -------------------------------------------------------------
   public Link(int id, double dd) // constructor
      {
      iData = id;                 // initialize data
      dData = dd;                 // ('next' is automatically
      }                           //  set to null)
// -------------------------------------------------------------
   public void displayLink()      // display ourself
      {
      System.out.print("{" + iData + ", " + dData + "} ");
      }
   }  // end class Link
public Link next;              // next link in list
还没有定义完类,怎么在这里就声明link类了啊,
我查了一下java api没有link类
还有这处
 Link temp = first;          
      first = first.next; link中没有next
这里怎么用了next这个变量了
它说是自动添加next这我就不理解了
它是怎么自动添加的呢
我看了下java类库代码,
public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable
LinkedList 后的<E>是什么意思啊,大家觉得看类库的源码,是不是一种有效的学习方法呢

解决方案 »

  1.   

    当你创建了class link,这是你就可以使用link这个类了。
    不存在有没有完成的概念。next是link类的实例变量,并且声明为public,
    我们就可以通过link的一个对象来访问这个变量。看类库的代码会养成很好的编程习惯,但是有没有效就很难讲。
    因为我不是这么学的。
    :)
      

  2.   

    <E>是模版呀,代表的是所有类型。
      

  3.   

    泛型<E>
    规定链表中的数据类型该类是自己定义的类在自己的类中使用
    有点类似 递归方法 似的 在自己的方法中调用自己的方法
      

  4.   

    可能搂住是初学者,建议先不要接触这些关于java算法的东西,先搞好基础然后再作些bs方面的工作,回过头来再搞这个。
      

  5.   

    可能他的意思是想不利用 java.util.LinkList这个累自己写一个吧
    提示1)
    两个类,一个主类(link),一个内部类(推荐)element
    link.head
    link.end
    link.add()-> new element 就是 head=new element(),end = head;
    注意第一次加入内容的时候
    还有一定要有保持 每个 element 有引用被其他对象所引用(要不给JVM回收了)