for 루프가 멈추지 않는 문제가 있습니다. 사용자 정의 목록에서 단 하나의 항목으로 outPutGenerator를 처음 호출하면 완벽하게 작동합니다. 9 개의 항목으로 다시 실행하면 계속 실행됩니다. 올바른 방향으로 나를 가리켜 주시겠습니까?여러 입력이 멈추지 않는 루프 용
편집 : 두 번째 실행 테스트를받을 수는 있지만 그 이후는 없습니다.
input:
1
5
3
3 2 4
1 5 2
3 6 4
1
6
2
5 6
6 7
코드 :
이public static void outputGenerator (CustomList [] list, PrintWriter printWriter) {
int size2;
int valueToPrint;
CustomList listToBuild;
int length;
length = list.length;
System.out.println("len: " + length);
//print out the results to a .txt file
try {
printWriter.println("Matrix read: ");
printWriter.println();
printWriter.println("------------------" +
"---------------------");
printWriter.println();
printWriter.flush();
for (int x = 0; x < length; x++){
System.out.println("test");
listToBuild = list[x];
size2 = listToBuild.sizeOfList();
System.out.println("size2 " + size2);
for (int y = 0; y < size2; y++) {
System.out.println("y: " + y);
valueToPrint = listToBuild.ValueOfNode(y);
printWriter.println(valueToPrint);
System.out.println("val" + valueToPrint);
printWriter.flush();
}
printWriter.println();
}
return;
}catch (Exception e) {
e.printStackTrace();
}
}
사용자 정의 링크 목록 번호 :
public class CustomList {
private Node firstNode;
private Node end;
private Node header;
private int sizeOfMatrix;
private int sizeOfList;
//constructor to set all to blank
public CustomList() {
firstNode = null;
end = null;
header = null;
sizeOfMatrix = 0;
sizeOfList = 0;
}
public void addToList(int dataToSave) {
Node node = new Node (dataToSave);
if (firstNode == null) {
firstNode = node;
firstNode.next = end;
firstNode.before = header;
}
else if (end == null) {
end = node;
end.before = firstNode;
firstNode.next = end;
}
else
end.next = node;
node.before = end;
end = node;
sizeOfMatrix++;
}
public void setHeader (int dataToUse){
Node headerNode = new Node(dataToUse);
header = headerNode;
header.next = firstNode;
}
public void print() {
Node zNode = firstNode;
System.out.println("Test");
if(firstNode == null){
System.out.print("EMPTY");
return;
}
while (zNode != null) {
System.out.println(zNode);
zNode = zNode.next;
}
}
public int sizeOfList() {
Node zNode = firstNode;
sizeOfList = 0;
while(zNode != null) {
zNode = firstNode.next;
sizeOfList++;
}
return sizeOfList;
}
public int ValueOfNode(int column) {
int counter = 0;
Node zNode = firstNode;
while (zNode != null) {
if (column == counter){
return zNode.numInMatrix();
}
else
zNode = firstNode.next;
counter++;
}
return -1;
}
size2 = listToBuild.sizeOfList(); 그래? – FallAndLearn
@FallAnd 아마도 listToBuild의 크기를 알 것입니다. 왜냐하면 그는 그것을 내부 루프의 조건으로 사용하기 때문입니다. – Abhishek
나는 사용자 정의 된 연결 목록 클래스를 작성하고 그것을 사용하여 행렬을 출력해야한다. – cfsprod