getNext() verkettete Liste
Ich bin wirklich neu auf Java und StackOverflow also bitte nicht gemein sein. Ich würde wirklich zu schätzen einige helfen. Vielen Dank im Voraus.
Ich fühle mich wie das ist wirklich einfach und ich habe schon ausprobiert eine million verschiedene Möglichkeiten, aber es funktioniert nicht.
Ich bin versucht, in eine text-Datei und speichern Sie es in einer verlinkten Liste, und ich versuche, auf dem Dritten Knoten auf der hier verlinkten Liste. Aus irgendeinem Grund kann ich den Zugriff auf den ersten Knoten, dann kann mit der getNext () - Befehl zu gehen, um den nächsten Knoten, aber wenn ich versuche, mit getNext() zu gehen, den Dritten Knoten, geht es zurück dem zweiten Knoten. So ist es nicht zu Dritten Knoten.
Ich bin einfach fehlen einige Schlüssel-Konzept? Auch lassen Sie mich wissen, wenn Sie brauchen mehr Informationen.
Den text-Datei, die getroffen wurden ist:
5
A B C D E
A B //Dies ist die Zeile, die ich will
B C
B D
C D
C E
D E
Hier ist ein Teil von meinem code:
public static void main(String[] args) throws IOException{
/**
* Check whether the user types the command correctly
*/
if (args.length != 1)
{
System.out.println("Invalid input");
System.out.println(args.length);
System.exit(1);
}
String filename = args[0];
Scanner input = new Scanner (new File(filename));
LinkedList<String> linkedList= new LinkedList<String>();
while(input.hasNext())
{
linkedList.addToRear(input.nextLine());
}
LinearNode<String> link= linkedList.firstLink;
String temp = " ";
link.getNext();
temp = (String)link.getElement();
String[] numofVerticesArray = temp.split(" ");
int numOfVertices = Integer.parseInt(numofVerticesArray[0]);
int lineNumber = 1;
String [] arrayOfVertices;
LinearNode<String> secondLine = link;
String temp2;
for (int i=0; i <= lineNumber; i++)
{
secondLine = link.getNext();
}
lineNumber = 2;
temp2 = (String)secondLine.getElement();
arrayOfVertices = temp2.split(" ");
int[][] adjMatrix = new int[numOfVertices][numOfVertices];
LinearNode<String> edgeLine = link;
String [] arrayOfEdge;
int rowCount = 0;
int columnCount = 0;
String temp3;
lineNumber = 2;
for (int i=0; i <= lineNumber; i++)
{
edgeLine = link.getNext();
System.out.print((String)edgeLine.getElement());
//When this is printed out, the second node's
//content is printed out, not the third node
}
lineNumber++;
temp3 = (String)edgeLine.getElement();
arrayOfEdge = temp3.split(" ");
- Insgesamt würde ich vorschlagen, die überprüfung der Konzepte und versucht zu umschreiben, dass das Programm von Grund auf neu(es wäre eine gute übung für Sie). Beachten Sie auch, dass, wenn Sie anrufen
getNext
dann stellen Sie sicher, dass Sie speichern Sie Sie irgendwo, und vergessen Sie es. In Ihrem code, wenn Sie anrufengetNext
Sie kontinuierlich zu vergessen diegetNext
Wert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Halten Sie auf Fragen für das zweite element aus der LinkedList.
setzt den Wert des zweiten Elements der LinkedList link in
edgeLine
, und Sie dann die Schleife und das gleiche tun, und dann das gleiche immer und immer und immer wieder.Versuchen Sie
Diese wird in Bewegung zu halten.
Die einzige Aufgabe, die Sie an die
link
variable ist:link= linkedList.firstLink;
. Du bist nie zuweisen, nichts anderes zu es. So ruftlink.getNext()
werden immer wieder die gleichen Knoten, nämlich die zweite.link
ist kein iterator, so können Sie nicht rufengetNext()
und vorab durch die verlinkten Liste.