반응형
Q.
다른 미션과 달리 미션2에서 StackNode* 가 아닌 StackNode**를 사용해야 하는 이유가 무엇인가요? 자료형**의 명칭, 의미와 사용법, 그리고 자료형*를 사용했을 때보다 이를 사용했을 때의 장점이 궁금합니다.
A.
**는 이중포인터라고 부르시면 됩니다. int** ptr이라고 되어있으면, ptr은 int*를 가리키는 포인터입니다. int*는 int를 가리키는 포인터이죠.
미션2에서 StackNode**를 사용한 이유는, push, pop, peek 함수에서 StackNode*를 input으로 받아와서는 정상적인 동작을 하지 않기 때문입니다. 미션2의 함수를 현재 얼마나 구현하셨는지 알 수 없어 더 이상 자세한 설명을 드리기는 어려울 것 같지만, push와 pop 함수 내에서는 root라는 변수를 *root 형태로 사용해야만 함을 상기해보신다면 input을 StackNode**의 형태로 받아와야 한다는 것을 이해하실 것입니다.
더 궁금하신 점이 있다면 댓글로 말해주세요!
반응형
'Education' 카테고리의 다른 글
[부스트 코딩 뉴비 챌린지 2020] week5_미션01 (0) | 2020.08.17 |
---|---|
[부스트 코딩 뉴비 챌린지 2020] week6_미션03_2 : 연결 리스트로 Queue 만들기 (0) | 2020.08.17 |
[부스트 코딩 뉴비 챌린지 2020] week6_미션04 : 연결 리스트 뒤에서 k번째 노드 찾기 (0) | 2020.08.14 |
[부스트 코딩 뉴비 챌린지 2020] week6_미션03 : 배열로 Queue 만들기 (0) | 2020.08.14 |
[부스트 코딩 뉴비 챌린지 2020] week6_미션02 : 연결 리스트로 Stack 만들기 (0) | 2020.08.14 |