2012-04-10 2 views
0

그물에 대한 인터뷰 질문 아래에 나타났습니다.노드에 NULL을 저장하는 방법은 무엇입니까?

"프로토 타입을

Node GetNextNode(Node n); 

을 다음으로 단독 LL에서 Getnextnode 기능을위한 코드를 작성하고 검증"

일반적인 경우 솔루션은 아래 무언가 같이 정직 :

Node GetNextNode(Node n) 
{ 
    Node temp = *(n.link); 
     return temp; 
} 

n이 목록의 마지막 노드인지 궁금합니다. n.linkNULL을 가리키고, 그 경우 어떻게 반환할까요?

또한 head이 목록의 첫 번째 노드에 대한 포인터이고 목록이 비어있는 경우 GetNextNode 함수에 전달하는 방법입니다.

아무쪼록. 감사.

+0

왜 포인터를 반환하고 포인터를 가져 오지 않습니까? –

+0

이 메서드 시그니처를 사용하면 null을 반환 할 수 없지만 Node sentinel 값을 사용할 수 있습니다. dereferencing은 null_ptr이 정의되지 않은 동작이므로 잊지 말고 확인해야합니다. – Joe

+0

@ Richard J. Ross III 그럴 수 있었으면 좋겠지 만 질문에 명시된 프로토 타입이 있습니다. – CppLearner

답변

2

목록의 끝을 저장하는 또 다른 방법은 link이 노드 자체를 가리 키도록하는 것입니다. 이와 같은 방법으로 귀하의 링크는 항상 유효하며 두 가지가 동일한 지 비교하여 최종 결과를 테스트 할 수 있습니다.

관련 문제