Java 尝试使用索引对双链接列表实现快速排序,但在快速排序类中遇到了一些困难

Java 尝试使用索引对双链接列表实现快速排序,但在快速排序类中遇到了一些困难,java,quicksort,Java,Quicksort,链接类: class Link { public int data; public Link next; public Link previous; public int count; public Link(int x, int y) { data=x; count = y; } public void displayLink() { System.

链接类:

class Link  
{
    public int data; 
    public Link next;
    public Link previous;
    public int count;

    public Link(int x, int y)  
    {  
        data=x;
        count = y;
    }

    public void displayLink()  
    {  
        System.out.print(data+" ");
    }  
}

DoublyLinkList类(在quicksort类中有一些错误,或者任何一个都可以在不使用索引的情况下更改快速排序方法):

class DoublyLinkList  
{  
    private Link first;  
    private Link last;

    public DoublyLinkList()  
    {  
        first=null;  
        last=null;  
    }  

    public void insert(int x,int y)  
    {  
        Link newLink=new Link(x,y);  
        newLink.next=null;  
        if(isEmpty())
        {
            first=newLink;  
        }
        else  
        {  
            last.next=newLink;  
            newLink.previous=last;  
        }  
        last=newLink;  
    }  

    public boolean isEmpty()  
    {  
        return(first==null);  
    }

    public void displayList()  
    {  
        Link current=first;  
        while(current!=null)  
        {  
            current.displayLink();  
            current=current.next;  
        }  
     }

     public void quicksort()
     {
         Link pivot = first;
         Link too_big_index = first.next;
         int temp;
         Link too_small_index = last;

         while (too_big_index.data <= pivot.data)
             too_big_index =too_big_index.next;

         while (too_small_index.data > pivot.data)
             too_small_index=too_small_index.previous;

        if(too_big_index.count < too_small_index.count)
        {
            temp = too_big_index.data;
            too_big_index.data =too_small_index.data;
            too_small_index.data=temp;
            // swap data[too_big_index] and data[too_small_index]
        }

        while (too_small_index.count > too_big_index.count)
        {
            quicksort();
        }
        temp = too_small_index.data;
        too_small_index.data =pivot.data;
        pivot.data=temp;
    }
}
public class Test
{
    public static void main(String args[]) 
    {
        DoublyLinkList d = new DoublyLinkList();
        d.insert(34,0);
        d.insert(75,1);
        d.insert(86,2);
        d.insert(39,3);
        d.insert(10,4);
        d.insert(61,5);
        d.insert(22,6);
        d.insert(3,7);
        d.insert(1,8);
        d.insert(125,9);
        d.insert(162,10);
        d.displayList();
        d.quicksort();
        d.displayList();
    }
}