比如我想定义一个泛型的链表类,我该怎么做,各位高手,看我下面的程序,那里是对的,哪里是错的?class CNode<T>
{
T infor;
CNode next;

CNode(T data)
{
    infor=data;
}   
}各位大哥,上面这个节点类的定义有问题吗?public class CLinkedList<T>
{
      private CNode<T> head;
      private CNode<T> tail;      //定义一个方法,在表头加如一个元素,请问各位大哥,我该怎么实现
     //方法参数型别的泛化?
     //T addNodeFront(T data){ ... } 这样做对吗?    ......
}各位大哥帮忙啊!小弟弟是用的JDK1.5!

解决方案 »

  1.   

    CNode<T> addNodeFront(CNode<T> newNode) {
    newNode.next=this.head;
    this.head=newNode;
    return this.head;
    }
      

  2.   

    import java.io.*;class CNode<T>
    {
    T m_infor;
    CNode m_next;

    CNode(T infor, CNode next)
    {
    m_infor = infor;
    m_next = next;
    }   
    }public class CLinkedList<T>
    {
    private CNode<T> head;
    private CNode<T> tail;

    public void addNodeToHead(T data)
    {
    CNode<T> tmpNode = new CNode<T>(data,head.m_next);
    head.m_next = tmpNode;

    if (tail == null)
    {
    tail = tmpNode;
    }     
    }

    public static void main(String args[])
    {
    CLinkedList<String> s = new CLinkedList<String>();
    s.addNodeToHead("hello!");
    }

    }大家看看,这个哪里有错啊,求求各位了!
      

  3.   

    怎么指明啊老大,请明示啊!
    这样吗?
    public <T> void addNodeToHead(T data)
    {
    CNode<T> tmpNode = new CNode<T>(data,head.m_next);
    head.m_next = tmpNode;

    if (tail == null)
    {
    tail = tmpNode;
    }     
    }