Я пытаюсь токенизировать строки числовых выражений в связанный список для проекта CS. Я должен использовать свой собственный связанный список, который я создал в предыдущей лабораторной работе.
Я токенизирую каждое число и оператор строки и вставляю каждый токен в узел в моем связанном списке по мере их токенизации. Когда я кодирую программу для печати каждого токена по мере его токенизации, каждый токен печатается. Но когда я говорю ему распечатать связанный список, содержащий каждый токен в качестве узла, некоторые операторы отсутствуют. Я не знаю, в чем причина такого поведения.
Ниже приведен метод, который создает связанный список, содержащий каждый токен:
public static LinkedListTest ReadInFile(String path){
File file = new File(path);
LinkedListTest list = new LinkedListTest();
try {
Scanner scanner = new Scanner(file);
int count = 0;
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
StringTokenizer st = new StringTokenizer(line);
while (st.hasMoreTokens()){
list.insert(st.nextToken());
}
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return list;
}
Ниже приведены способы вставки в связанный список и его печати:
public class LinkedListTest implements LinkedList {
private Node head;
public LinkedListTest(){
head = new Node();
}
public void insert(Object x){
if (lookup(x) == false){
if (head.data == null)
head.data = x;
else{
/*
Node NewNode = new Node();
NewNode.data = x;
NewNode.next = head;
head = NewNode;
*/
//InsertLast
Node temp = head;
while (temp.next != null){
temp = temp.next;
}
Node NewNode = new Node();
NewNode.data = x;
NewNode.next = null;
temp.next = NewNode;
}
}
}
public void printList(){
Node temp = head;
while (temp.next != null){
System.out.print(temp.data + " ");
temp = temp.next;
}
System.out.print(temp.data + " ");
}
}