나는 현재 SparseMatrixNode 사용하는 스파 스 매트릭스 프로그램을 만드는거야 :자바 스파 스 매트릭스 생성
이public SparseMatrixNode(int row, int col, int value, SparseMatrixNode down, SparseMatrixNode across)
{
this.row = row;
this.col = col;
this.value = value;
this.down = down;
this.across = across;
}
내 프로그램 템플릿 희소 행렬과 같이 작성
public SparseMatrix()
{
noofrows=noofcols=0;
// create the top-left entry point cell
root=new SparseMatrixNode(0, 0, 0, new SparseMatrixNode(0, 0, 0, null, null), new SparseMatrixNode(0, 0, 0, null, null));
}
public void Create(int noofrows, int noofcols)
{
this.noofrows=noofrows;
this.noofcols=noofcols;
root=new SparseMatrixNode(0, 0, 0, new SparseMatrixNode(noofrows+1, 0, 0, null, null), new SparseMatrixNode(0, noofcols+1, 0, null, null));
}
그리고 이것은 내 SetValue는입니다 함수는 3 개의 정수 값을 받아 현재 값을 바꾸거나 새 노드를 만들어 Sparse 행렬에 삽입합니다.
public void SetValue(int row, int col, int value)
{
if (value == 0)
{
return;
}
else
{
SparseMatrixNode checkNode = FindNode(row, col);
if (checkNode.value != 0)
{
checkNode.setValue(value);
}
//SparseMatrixNode dummyRow = root.FindRow(row);
if (root.down.row == 5)
{
root.down = new SparseMatrixNode(row, 0, 0, null, new SparseMatrixNode(row, col, value, null, null));
root.across = new SparseMatrixNode(0, col, 0, new SparseMatrixNode(row, col, value, null, null), null);
}
}
그러나 나는 4x4 그리드와 SetValue를 호출을 기반으로 내 코드를 테스트 할 때 (1, 2, 5), 단순히 공의의 그리드를 출력합니다. 나는 내 코드를 단계별로 실행하고 왜 새로운 노드를 입력하지 않는지 알아 냈다. 그러나 몇 시간 동안 갇혀 있었고 누군가가 상황에 대해 밝힐 수 있는지 궁금해하고 있었습니까?
내 질문은 : 왜 내 SetValue 함수를 새 노드를 만들고 "더미"가로 및 세로 속성 (행 0 열 0) 연결하지 않는 이유는 무엇입니까?