inflearn logo
강의

講義

知識共有

ホン・ジョンモのついていきながら学ぶC言語(付録)

17.17 バイナリナビゲーションツリーの実装

19:20 부분에서 질문있습니다.

解決済みの質問

306

thd2tn

投稿した質問数 27

0

교수님께서 Seekitem()를 이용해서 pair를 return하는 방법에는 while문을 사용하는 방법 말고도 재귀호출을 사용하는 방법도 있다고 하셨습니다.

저는 재귀호출로 짜봤는데 아무래도 너무 지저분한 거 같습니다. 교수님이나 다른 분이 재귀호출을 사용하셨다면 어떤 식으로 코드를 짰을 지가 궁금합니다.

제가 짠 코드는 아래와 같습니다.

static Node* SeekParentNode(const Item* pi, Node* pnode)

{

if (pnode->left != NULL)

if (compare(pnode->left->item, *pi) == 0)

return pnode;

 

if (pnode->right != NULL)

if (compare(pnode->right->item, *pi) == 0)

return pnode;

 

if (compare(pnode->item, *pi) > 0)

{

if (pnode->left == NULL && pnode->right == NULL)

return NULL;

SeekParentNode(pi, pnode->left);

}

else if (compare(pnode->item, *pi) < 0)

{

if (pnode->left == NULL && pnode->right == NULL)

return NULL;

SeekParentNode(pi, pnode->right);

}

}

 

static Node* SeekChildNode(const Item* pi, Node* pnode)

{

if (compare(pnode->item, *pi) == 0)

return pnode;

 

if (compare(pnode->item, *pi) > 0)

{

if (pnode->left == NULL)

return NULL;

SeekChildNode(pi, pnode->left);

}

else

{

if (pnode->right == NULL)

return NULL;

SeekChildNode(pi, pnode->right);

}

}

 

static Pair SeekItem(const Item* pi, const Tree* ptree)

{

Pair found_pair;

found_pair.parent = SeekParentNode(pi, ptree->root);

found_pair.child = SeekChildNode(pi, ptree->root);

 

return found_pair;

}

c

回答 1

1

kangminchul

작성해주신 코드도 정말 좋은 듯 합니다 :)

영상 다운로드는 안되나요?

0

7

0

섹션7에서 개념적 궁금증

0

20

1

26년2회 실기기출은 언제쯤...

0

52

2

이론 공부법 요약본 버전 업데이트 문의

0

35

2

정처기 필기 준비할때 이 이론을 다시 외워도 될까요?

0

59

2

최댓값 구하기(서바이벌)에서 수식 구성에 대한 질문

0

43

2

이진 탐색: 탐색 실패하는 경우 어째서 first > last인 경우가 나오나요?

0

365

1

17.12) access violation

0

339

1

finditembyindex 질문드립니다!

0

374

1

pnode = pnode->next; 와 pnode->next = pnode;는 같은 것으로 생각해도 될까요?

0

424

2

질문. warning뜨는 이유

0

327

1

링크드 리스트 질문 드립니다.

0

228

1

함수포인터 질문드립니다

0

249

1

강의 내용 질문 드립니다!

0

400

2

노드 주소 순서 관련 질문

0

300

1

질문드립니다!

0

263

1

DeleteAllNodes 에서 질문있습니다.

0

442

5

16:30 질문입니다.

0

381

4

scanf 질문이요!!

0

274

1

12:30 의 ArrayQueue.h

0

319

2

10:10 Add front에서 질문드립니다.

1

380

1

스택 자료구조

0

270

1

변수 count의 활용에 대해 질문이 있습니다.

0

344

1

1번 실행하면 에러가 뜨는데 이유를 모르겠습니다..

0

400

2