간혹이 코드를 실행하면 null 참조 예외가 Current.Next.Data = Hold.Data;
에서 발생합니다.삽입 정렬 중복 링크 목록 문제
private void InsertionSort()
{
for (Node FirstUnsorted = _Head.Next; FirstUnsorted != null; FirstUnsorted = FirstUnsorted.Next)
{
Node Hold = FirstUnsorted;
Node Current;
for (Current = FirstUnsorted.Prev; Current != null && Current.Data.CompareTo(Hold.Data) > 0; Current = Current.Prev)
Current.Next.Data = Current.Data;
Current.Next.Data = Hold.Data;
}
}
현재 노드가 null 인 경우 다음 노드를 참조 할 수 없다는 것을 알고 있지만 솔루션을 결정할 수 없습니다.
어떻게하면이 문제가 발생하지 않도록 할 수 있습니까?
'Current'가 null 인 경우 Current.Next가 존재하지 않으므로 'Current.Next'가 null인지 여부를 확인할 수 없습니다. – TheAuzzieJesus
이동을 건너 뛰면 목록의 데이터가 삭제되고 중복 참조가 발생합니다. – Guffa
@ TheAuzzieJesus, 네, 맞습니다. 좋아, 너는 그것을 이해한다! 우리는'Current'를 체크 한 후에 만'Current.Next'를 체크합니다. 왜냐하면 우리는 널 참조 해제 오류를 원하지 않기 때문입니다. – Ilya