Preciso implementar na classe List o método *public void ordenacaoLista()

Preciso implementar na classe List (implementação simplesmente encadeada) o seguinte método: public void ordenacaoLista()
//Ultilizar o método Bubble Sort
public void ordenacaoLista()

` public class List {
private Node firstNode;

private Node lastNode; 

private String name; 

public List() { 
    this("list"); 
} 

public List(String listName) { 
    name = listName; 
    firstNode = lastNode = null; 
} 

public Node getFirst() { 
    return firstNode; 
} 

public Node getLast() { 
    return lastNode; 
} 

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

public void insertAtFront(Object insertItem) { 
    Node n = new Node(insertItem); 
    if (isEmpty()) 
        firstNode = lastNode = n; 

    else { 
        firstNode.setPrevious(n); 
        n.setNext(firstNode); 
        firstNode = n; 
    } 
} 

public void insertAtBack(Object insertItem) { 
    Node n = new Node(insertItem); 
    if (isEmpty()) 
        firstNode = lastNode = n; 

    else { 
        lastNode.setNext(n); 
        n.setPrevious(lastNode); 
        lastNode = n; 
    } 
} 

public Object removeFromFront() throws UnderflowException { 
    if (isEmpty()) 
        throw new UnderflowException(); 

    Object removedItem = firstNode.getData(); 

    if (firstNode == lastNode) 
        firstNode = lastNode = null; 
    else { 
        firstNode = firstNode.getNext(); 
        firstNode.setPrevious(null); 
    } 

    return removedItem; 

} 

public Object removeFromBack() throws UnderflowException { 
    if (isEmpty()) 
        throw new UnderflowException(); 

    Object removedItem = lastNode.getData(); 

    if (firstNode == lastNode) 
        firstNode = lastNode = null; 

    else { 
        Node penultimo = lastNode.getPrevious(); 
        lastNode = penultimo; 
        lastNode.setNext(null); 
    } 

    return removedItem; 

} 

public boolean remove(Object o) throws UnderflowException { 
    Node current = firstNode; 
    if (isEmpty()) 
        return false; 
    else if (firstNode.getData().equals(o)) { 
        removeFromFront(); 
        return true; 
    } else if (lastNode.getData().equals(o)) { 
        removeFromBack(); 
        return true; 
    } 

    while (current != null) { 
        if (current.getData().equals(o)) { 
            Node next = current.getNext(); 
            Node previous = current.getPrevious(); 
            previous.setNext(next); 
            next.setPrevious(previous); 
            next = null; 
            return true; 
        } 
        current = current.getNext(); 
    } 
    return false; 
} 

public void print() { 
    if (isEmpty()) { 
        System.out.println("Empty " + name); 
        return; 
    } 

    System.out.print("The " + name + " is: "); 
    Node current = firstNode; 
    while (current != null) { 
        System.out.print(current.getData().toString() + " "); 
        current = current.getNext(); 
    } 

    System.out.println("\n"); 
} 

} // end class List `

`public class Node {
private Object data;
private Node nextNode;
private Node previousNode;

public Node( Object element ) {
this( element, null );
}

public Node( Object element, Node node ) {
data = element;
nextNode = node;
}

public Object getData() { return data; }

public void setData (Object element){
data = element;
}

public Node getNext() { return nextNode; }

public void setNext(Node n) {
nextNode = n;
}

public Node getPrevious() { return previousNode; }

public void setPrevious(Node n) {
previousNode = n;
}
} `

` public class GeneralTree {
private Object key;
private int degree;
private List list;

public Object getKey () 
{ return key; } 
 
public GeneralTree (Object key) { 
    this.key = key; 
    degree = 0; 
    list = new List (); 
} 

public GeneralTree getSubtree (int i) { 
    if (i < 0 || i >= degree) 
        throw new IndexOutOfBoundsException (); 
    Node ptr = list.getFirst (); 
    for (int j = 0; j < i; ++j) 
        ptr = ptr.getNext (); 
    return (GeneralTree) ptr.getData (); 
} 

public void attachSubtree (GeneralTree t) { 
    list.insertAtBack (t); 
    ++degree; 
} 

public GeneralTree detachSubtree (GeneralTree t) throws UnderflowException { 
    list.remove (t); 
    --degree; 
    return t; 
} 

}`

ok… você precisa…

qual a sua dúvida exatamente?

Você quer que alguém escreva a implementação correta de ordenação? É isso?
Cara, tem uma interface chamada Comparable<T>. Dá uma olhada nesse link.

Abs.

É um exercício.
Precisa ser feito com o método:
public void ordenacaoLista(); Obs.: Ultilizar o método Bubble Sort

1 curtida

Então, @Chuck_Norris, no link que mandei no comentário anterior explica como ordenar listas.