有没有大神帮我看下这个单链表并集哪里有问题
  • 浏览:274 评论:2 人

  • public class SingleList<T> extends Object
    {
    public Node<T> head;
    public SingleList()
    {this.head=new Node<T>();
    }
    public SingleList(T[] value)
    {this();
    Node<T> rear=this.head;
    for(int i=0;i<value.length;i++)
    {rear.next=new Node<T>(value,null);
    rear=rear.next;
    }
    }
    public T get(int i)
    {
    Node<T> p=this.head.next;
    for(int j=0;p!=null&&j<i;j++)
    p=p.next;
    return (i>=0&&p!=null)?p.data:null;

    }
    public String toString()
    {
    String str="(";
    for(Node<T> p=this.head.next;p!=null;p=p.next)
    {str+=p.data.toString();
    if(p.next!=null)
    str+=",";
    }
    return str+")";
    }
    public void insert(T x)//尾插入方法
    {
    Node<T> p=new Node(x,null);
    Node<T> front=this.head;
    while(front.next!=null)
    {front=front.next;
    }
    front.next=p;
    }
    public SingleList(SingleList<T> list) //深拷贝
    {
    this();
    Node<T> x=this.head;
    Node<T> p=list.head;
    x.data=p.data;
    p=p.next;
    for(;p!=null;p=p.next)
    {
    x.next=new Node<T>(p.data,null);
    x=x.next;
    }
    }
    public SingleList<T> union(SingleList<T> list_b) //返回两个集合的并集,尾插入
    {
    Node<T> p_a=this.head;
    for(Node<T> p_b=list_b.head;p_b.next!=null;p_b=p_b.next)
    for(int i;p_a.next!=null;p_a=p_a.next)
    {
    Node<T> p=new Node(p_b.data,null);
    Node<T> front=head;
    while(front.next!=null)
    {
    front=front.next;
    }
    front.next=p;
    }

    return(this);
    }
    public static void main(String[] args)
    {
    SingleList testlist01=new SingleList<Integer>();
    testlist01.insert(1);
    testlist01.insert(2);
    testlist01.insert(3);
    testlist01.insert(4);
    testlist01.insert(5);
    System.out.println(testlist01.toString());
    SingleList testlist02=new SingleList<Integer>();
    testlist02.insert(6);
    testlist02.insert(4);
    testlist02.insert(2);
    testlist02.insert(9);
    testlist02.insert(7);
    System.out.println(testlist02.toString());

    System.out.println(testlist01.toString());
    testlist01.union(testlist02);

    System.out.println(testlist01.toString());
    }


    }