더블링크드에서요~ 제거함수 있잖아요~
2010-01-20
|
by rasede
2141
질문이 세개있는데요~
세개 다 DLL_Removenode 함수 질문이구요.
노드 제거부분 때문에 질문좀 드릴게요~
1) 책보면 if (remove->prevnode != NULL) 이라고 되어있는데요.
해석이 맞다면 헤더인 경우를 찾는건데. 이건 DLL_R~N~ 함수 시작할때 if에서 찾지 않았나요?
특별한 이유가 있다면 멍청한 학생 하나좀 구제좀 ㅠㅠ 왜그런지 모르겠어서 ㅠㅠ
2) 더블링크드 제거 방법을 보니깐요~
이거 구현하려면
1. 제거 노드가 헤더인 경우
2. 제거 노드가 마지막인 경우
3. 나머지~
이렇게 구현되야 할것 같은데
책에 있는 if (remove->prevnode != NULL) 이게 헤더 찾는 1번 경우고
if(Remove->nextnode != NULL) 이게 3번 구문인데
2번 경우는 어떻게 되는거죠?
제거 노드가 리스트의 마지막인 경우에는 remove->prevnode->Nextnode도 NULL로 초기화
시켜주어야 하지 않나요? 아니면 제가 뭘 잘못 이해한건가요?
3) 제 질문 1,2가 만약 책의 오류라면요~
removenode 함수를
if (remove->prevnode != NULL)
~~
else if (remove->nextnode ==NULL)
~~
else if(remove->nextnode !=NULL)
로 구성하면 되는건가요? ㅠㅠ 답변좀 해주세요 ㅠㅠ
예체능 학과 나와서 컴공과로 편입준비중인데
혼자 독학 하는거라 알려줄 사람이 없어요 ㅠㅠ