Bonjour J'essaie d'implémenter une file d'attente prioritaire en Java avec une liste chaînée mais j'ai un problème de tri des éléments lors de l'insertion. Voici mon programme jusqu'à présent, toute aide serait massivement appréciée.J'ai besoin d'aide pour résoudre un problème de tri d'une liste chaînée prioritaire + en Java
import java.util.Scanner;
public class T0 {
public static void main(String args[]) {
Scanner keyboard = new Scanner(System.in);
PQ myList = new PQ();
myList.addSort("Z");
myList.addSort("B");
myList.addSort("C");
myList.addSort("B");
myList.addSort("Z");
System.out.println(myList.view(0));
System.out.println(myList.view(1));
System.out.println(myList.view(2));
System.out.println(myList.view(3));
System.out.println(myList.view(4));
}
}
class PQ {
Node tail = new Node(null, null);
int elementCount = 0;
Node lastAdded = tail;
public void add(String word) {
Node added = new Node(word, lastAdded);
lastAdded=added;
elementCount++;
}
public void addSort(String word){
Node temp = new Node(null, null);
for(int n = 0; n<elementCount && word.compareTo(lastAdded.next().toString()) >1; n++){
temp=lastAdded.next();
}
Node added = new Node(word, lastAdded.next());
lastAdded.changeNext(added);
elementCount++;
}
public String view(int i){
Node temp = lastAdded;
for(int n = elementCount; n > i; n--){
temp=temp.next();
}
return temp.toString();
}
public String toString() {
return lastAdded.toString();
}
class Node {
String name;
Node nextNode;
public Node(String s, Node n) {
name = s;
nextNode = n;
}
public void changeNext(Node n){
nextNode=n;
}
public Node next() {
return nextNode;
}
public String toString() {
return name;
}
}
}
sorties Actuellement:
run:
Z
B
C
B
Z
BUILD SUCCESSFUL (total time: 1 second)
Upadate: méthode addSort Changed être:
public void addSort(String word){
Node temp = lastAdded;
for(int n = 0; n<elementCount && word.compareTo(lastAdded.next().toString()) > 0; n++){
temp=lastAdded.next();
}
Node added = new Node(word, lastAdded.next());
lastAdded.changeNext(added);
elementCount++;
lastAdded=temp;
}
Cette Déclenche une exception pointeur NULL à
System.out.println(myList.view(0));
Veuillez nous faire savoir quel est le problème exact, c'est-à-dire quelle est la sortie de votre programme. –
Efforcez-vous de clarifier votre problème pour permettre aux gens de vous aider. – Roman
Cela ressemble à une tâche d'une école/université. Est-ce? – Skarab