ํŠธ๋ฆฌ(Tree) ์ „์œ„, ์ค‘์œ„, ํ›„์œ„ ์ˆœํšŒ with C์–ธ์–ด

2021. 12. 20. 23:41ยท๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/ํŠธ๋ฆฌ
728x90

ํŠธ๋ฆฌ์˜ ์ˆœํšŒ ์ค‘

์ค‘์œ„(inorder), ์ „์œ„(preorder), ํ›„์œ„(postoder) ์ˆœํšŒ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

 

์—ฌ๊ธฐ์„œ ์„ค๋ช…ํ•  ๋•Œ์˜ L์€ LEFT, V๋Š” VISIT, R์€ RIGHT๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์ฆ‰, ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ, ๋…ธ๋“œ ๋ฐฉ๋ฌธ, ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

์ค‘์œ„ ์ˆœํšŒ(inorder traversal)

์ค‘์œ„ ์ˆœํšŒ

์ค‘์œ„ ์ˆœ์œ„๋Š” LVR ํƒ์ƒ‰์ด ์ด๋ฃจ์–ด์ง„๋‹ค.

์ฆ‰, ์™ผ์ชฝ-๋ฐฉ๋ฌธ-์˜ค๋ฅธ์ชฝ ํƒ์ƒ‰์ด ์žฌ๊ท€์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

์ค‘์œ„์ˆœํšŒ ๊ณผ์ •1

๊ฐ€์žฅ ๋จผ์ € ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ๋กœ์˜ ํƒ์ƒ‰์ด ์‹œ์ž‘๋œ๋‹ค.

์ฆ‰, ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์—์„œ ๋˜๋‹ค์‹œ ์ค‘์œ„ ์ˆœํšŒ๊ฐ€ ์žฌ๊ท€์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

 

์ค‘์œ„์ˆœํšŒ ๊ณผ์ •2

B๋…ธ๋“œ๊ฐ€ ๋ฃจํŠธ ๋…ธ๋“œ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋˜๊ณ , ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์ธ A๋…ธ๋“œ๋กœ์˜ ์ค‘์œ„ ํƒ์ƒ‰์ด ์ง„ํ–‰๋œ๋‹ค.

์ดํ›„ A๋…ธ๋“œ๋Š” ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ํ•ด๋‹น ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธ(V)ํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ถœ๋ ฅ: A

์ค‘์œ„์ˆœํšŒ ๊ณผ์ •3

B๊ฐ€ ๋ฃจํŠธ ๋…ธ๋“œ์ธ ๊ฒƒ ์ฒ˜๋Ÿผ ๋  ๋•Œ, ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์˜ ํƒ์ƒ‰์„ ๋งˆ์ณค์œผ๋‹ˆ

๋ฃจํŠธ ๋…ธ๋“œ์ธ B์˜ ๋ฐฉ๋ฌธ์ด ์ง„ํ–‰๋œ๋‹ค.

 

์ถœ๋ ฅ : A B

 

์ค‘์œ„์ˆœํšŒ ๊ณผ์ •4

์ดํ›„ B์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋กœ์˜ ์ค‘์œ„ ํƒ์ƒ‰์ด ๋‹ค์‹œ ์ง„ํ–‰๋œ๋‹ค. ์ด๋•Œ๋Š” D๋…ธ๋“œ๊ฐ€ ๋งˆ์น˜ ๋ฃจํŠธ ๋…ธ๋“œ์ธ ๊ฒƒ ์ฒ˜๋Ÿผ๋œ๋‹ค.

์ค‘์œ„์ˆœํšŒ ๊ณผ์ •5

D๊ฐ€ ๋ฃจํŠธ ๋…ธํŠธ์ผ ๋•Œ, ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์ธ C๋…ธ๋“œ๋กœ์˜ ์ค‘์œ„ ํƒ์ƒ‰์ด ์ง„ํ–‰๋œ๋‹ค. ์ดํ›„ C๋…ธ๋“œ๋Š” ์™ผ์ชฝ

์„œ๋ธŒ ํŠธ๋ฆฌ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ํ•ด๋‹น ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ถœ๋ ฅ : A B C

 

์ค‘์œ„์ˆœํšŒ ๊ณผ์ •6

์ดํ›„ ๋ฃจํŠธ ๋…ธ๋“œ์ธ D๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๊ฒŒ ๋œ๋‹ค

 

์ถœ๋ ฅ A B C D

 

์ค‘์œ„์ˆœํšŒ ๊ณผ์ •7

D๋…ธ๋“œ๊ฐ€ ๋ฃจํŠธ ๋…ธ๋“œ์ผ ๋•Œ, ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์ธ E๋…ธ๋“œ๋กœ์˜ ์ค‘์œ„ ํƒ์ƒ‰์ด ์ง„ํ–‰๋˜๊ณ 

์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ฐ”๋กœ E๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•œ๋‹ค.

 

์ถœ๋ ฅ A B C D E

 

์ค‘์œ„์ˆœํšŒ ๊ณผ์ •8

F ๋…ธ๋“œ๊ฐ€ ๋ฃจํŠธ ๋…ธ๋“œ์ผ ๋•Œ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ํƒ์ƒ‰์ด ๋ชจ๋‘ ์™„๋ฃŒ๋˜์—ˆ์œผ๋‹ˆ, ๋ฃจํŠธ ๋…ธ๋“œ์ธ F๋ฅผ ๋ฐฉ๋ฌธํ•œ๋‹ค.

 

์ถœ๋ ฅ : A B C D E F

 

์ค‘์œ„์ˆœํšŒ ๊ณผ์ •9

์ดํ›„ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์—์„œ ์ค‘์œ„ ํƒ์ƒ‰์ด ์ง„ํ–‰๋œ๋‹ค. ์ด๋•Œ G๋…ธ๋“œ๊ฐ€ ๋ฃจํŠธ ๋…ธ๋“œ์ฒ˜๋Ÿผ ๋œ๋‹ค.

 

์ค‘์œ„์ˆœํšŒ ๊ณผ์ •10

G๋…ธ๋“œ๊ฐ€ ๋ฃจํŠธ๋…ธ๋“œ ์ผ ๋•Œ, ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ฃจํŠธ ๋…ธ๋“œ์ธ G๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ถœ๋ ฅ : A B C D E F G

 

์ค‘์œ„์ˆœํšŒ ๊ณผ์ •11

์ดํ›„ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋กœ ๋‹ค์‹œ ์ค‘์œ„ ํƒ์ƒ‰์ด ์ง„ํ–‰๋œ๋‹ค. ์ด๋•Œ I๋…ธ๋“œ๊ฐ€ ๋ฃจํŠธ ๋…ธ๋“œ์ธ ๊ฒƒ ์ฒ˜๋Ÿผ ๋œ๋‹ค.

 

์ค‘์œ„์ˆœํšŒ ๊ณผ์ •12

์ดํ›„ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์ธ H๋…ธ๋“œ๋กœ์˜ ์ค‘์œ„ ํƒ์ƒ‰์ด ์ง„ํ–‰๋˜๊ณ  ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๊ฐ€ ์—†์œผ๋ฏ€๋กœ H๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ถœ๋ ฅ : A B C D E F G H

 

์ค‘์œ„์ˆœํšŒ ๊ณผ์ •13

์ดํ›„ ๋ฃจํŠธ ๋…ธ๋“œ์ธ I๋…ธ๋“œ์˜ ๋ฐฉ๋ฌธ์ด ์ง„ํ–‰๋˜๊ณ  ํƒ์ƒ‰์ด ์ข…๋ฃŒ๋œ๋‹ค.

 

์ถœ๋ ฅ : A B C D E F G H I

์ค‘์œ„ ์ˆœํšŒ ์†Œ์Šค์ฝ”๋“œ

void inorder(Node* root){ // ์ค‘์œ„์ˆœํšŒ
   inorder(root->left);    // ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ
    printf(root->data);    // ๋ฃจํŠธ๋…ธ๋“œ ๋ฐฉ๋ฌธ
   inorder(root->right);    // ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ
}


์ถœ์ฒ˜: https://code-lab1.tistory.com/9?category=1213002 [code_lab]

 


์ „์œ„ ์ˆœํšŒ(Preorder Traversal)

์ „์œ„ ์ˆœํšŒ๋Š” VLR ํƒ์ƒ‰์ด ์ด๋ฃจ์–ด์ง„๋‹ค.

์ฆ‰, ๋ฃจํŠธ ๋…ธ๋“œ-์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ-์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ ์ˆœ์œผ๋กœ ํƒ์ƒ‰์ด ์žฌ๊ท€์ ์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค.

์ „์œ„ ์ˆœํšŒ ์ˆœ์„œ

 

์ค‘์œ„ ์ˆœํšŒ์ฒ˜๋Ÿผ ์ „์œ„ ์ˆœํšŒ๋„ ์žฌ๊ท€์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๋ฉด, ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

์ˆœ์„œ๋Œ€๋กœ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒƒ์„ ์„ค๋ช…ํ•˜์ž๋ฉด,

  1. ๋ฃจํŠธ ๋…ธ๋“œ์ธ F๋ฅผ ๋ฐฉ๋ฌธ
  2. F์˜ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ ๋…ธ๋“œ B ๋ฐฉ๋ฌธ
  3. B์˜ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ ๋…ธ๋“œ A ๋ฐฉ๋ฌธ
  4. B์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ ๋…ธ๋“œ D ๋ฐฉ๋ฌธ
  5. D์˜ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ ๋…ธ๋“œ C ๋ฐฉ๋ฌธ
  6. D์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ ๋…ธ๋“œ E ๋ฐฉ๋ฌธ
  7. F์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ ๋…ธ๋“œ G ๋ฐฉ๋ฌธ
  8. G์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ ๋…ธ๋“œ I ๋ฐฉ๋ฌธ
  9. I์˜ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ ๋…ธ๋“œ H ๋ฐฉ๋ฌธ

 

์ถœ๋ ฅ : F B A D C E G I H

 

์ „์œ„ ์ˆœํšŒ ์†Œ์Šค์ฝ”๋“œ

void preorder(Node* root){
    printf(root->data);    // ๋ฃจํŠธ๋…ธ๋“œ ๋ฐฉ๋ฌธ
    preorder(root->left);    // ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ
    preorder(root->right);    // ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ
}


์ถœ์ฒ˜: https://code-lab1.tistory.com/9?category=1213002 [code_lab]

 

ํ›„์œ„ ์ˆœํšŒ(Postorder Traversal)

ํ›„์œ„ ์ˆœํšŒ๋Š” LRV ํƒ์ƒ‰์ด ์ด๋ฃจ์–ด์ง„๋‹ค.

์ฆ‰ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ-์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ-๋ฃจํŠธ ๋…ธ๋“œ ์ˆœ์œผ๋กœ ํƒ์ƒ‰์ด ์žฌ๊ท€์ ์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค.

 

ํ›„์œ„์ˆœํšŒ

 

์ˆœ์„œ๋Œ€๋กœ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒƒ์„ ์„ค๋ช…ํ•˜์ž๋ฉด,

 

  1. F์˜ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ ํƒ์ƒ‰
  2. B์˜ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ ํƒ์ƒ‰
  3. A๋…ธ๋“œ ๋ฐฉ๋ฌธ
  4. B์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ ํƒ์ƒ‰
  5. D์˜ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ ํƒ์ƒ‰
  6. C๋…ธ๋“œ ๋ฐฉ๋ฌธ
  7. D์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ ํƒ์ƒ‰
  8. E๋…ธ๋“œ ๋ฐฉ๋ฌธ
  9. D๋…ธ๋“œ ๋ฐฉ๋ฌธ
  10. B๋…ธ๋“œ ๋ฐฉ๋ฌธ
  11. F์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ ํƒ์ƒ‰
  12. G์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ ํƒ์ƒ‰
  13. I์˜ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ ํƒ์ƒ‰
  14. H๋…ธ๋“œ ๋ฐฉ๋ฌธ
  15. I๋…ธ๋“œ ๋ฐฉ๋ฌธ
  16. G๋…ธ๋“œ ๋ฐฉ๋ฌธ
  17. F๋…ธ๋“œ ๋ฐฉ๋ฌธ

 

์ถœ๋ ฅ : A C E D B H I G F

 

ํ›„์œ„ ์ˆœํšŒ ์†Œ์Šค์ฝ”๋“œ

void postorder(Node* root){
    postorder(root->left);    // ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ
    postorder(root->right);    // ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ
    printf(root->data);    // ๋ฃจํŠธ๋…ธ๋“œ ๋ฐฉ๋ฌธ
}


์ถœ์ฒ˜: https://code-lab1.tistory.com/9?category=1213002 [code_lab]



์ถœ์ฒ˜: https://code-lab1.tistory.com/9?category=1213002 [code_lab]

728x90
'๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/ํŠธ๋ฆฌ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์ž๋ฃŒ๊ตฌ์กฐ] ์ด์ง„ํŠธ๋ฆฌ(Binary Tree) ๊ตฌํ˜„
  • [์ž๋ฃŒ๊ตฌ์กฐ] ์ด์ง„ ํŠธ๋ฆฌ(Binary Tree)๋ž€?
  • ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ(Binary Search Tree)๋ž€?
  • ํŠธ๋ฆฌ(Tree)๋ž€?
juno1105
juno1105
๊ณต๋ถ€ํ•˜๋Š” ๊ฒธ ํฌํด ๋ธ”๋กœ๊ทธ
  • juno1105
    @juno1105
    juno1105
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (89)
      • ๐Ÿ’ฌ ์ž์œ  (3)
      • ๐Ÿ“– ์–ดํ•™ ๊ณต๋ถ€ (0)
        • โ›ฉ๏ธ ์ผ๋ณธ์–ด (0)
        • ๐Ÿ—ฝ ์˜์–ด (0)
      • ๐Ÿ“” ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ (4)
      • ๐Ÿ›  ํ”„๋กœ๊ทธ๋žจ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ๋ฒ• (1)
      • ๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (53)
        • ์Šคํƒ (4)
        • ํ (4)
        • ์ •๋ ฌ ๋ฐ ํƒ์ƒ‰ (17)
        • ๋ฆฌ์ŠคํŠธ (5)
        • ํ•ด์‹œ (1)
        • ํŠธ๋ฆฌ (8)
        • ํž™ (2)
        • ๊ทธ๋ž˜ํ”„ (12)
      • ๐Ÿ’ป ์ปดํ“จํ„ฐ ๊ตฌ์กฐ (0)
      • ๐Ÿšฅ ๋…ผ๋ฆฌํšŒ๋กœ (8)
      • ๐Ÿ”ฐ ๋ฐฑ์ค€ (20)
        • ํ, ์Šคํƒ, ๋ฑ (0)
        • DFS ์™€ BFS (3)
        • ๊ทธ๋ฆฌ๋”” (0)
        • ๋™์ ๊ณ„ํš๋ฒ• 1 (16)
        • ๋™์ ๊ณ„ํš๋ฒ• 2 (0)
        • ์ตœ๋‹จ ๊ฒฝ๋กœ (0)
        • ํŠธ๋ฆฌ (0)
        • ๋ฐฑํŠธ๋ž˜ํ‚น (0)
        • ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ (0)
        • ์ง‘ํ•ฉ๊ณผ ๋งต (1)
      • ๐ŸŒˆ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (0)
      • ๐Ÿ“ฑ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

    • โœจ์ž๋ฃŒ๊ตฌ์กฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ปค๋ฆฌํ˜๋Ÿผโœจ
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ •๋ ฌ ์ตœ์„ ์˜ ๊ฒฝ์šฐ
    ์ •๋ ฌ
    ๋น…์˜คํ‘œ๊ธฐ๋ฒ•
    ํ† ์ต 920์ 
    ํ† ์ต 950์ 
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ํ† ์ต 910์ 
    ํ† ์ต 900์ 
    ํ† ์ต 900
    ์ •๋ ฌ ์ตœ์•…์˜ ๊ฒฝ์šฐ
    ๊ทธ๋ž˜ํ”„ํƒ์ƒ‰
    ์ตœ๋‹จ๊ฒฝ๋กœ
    ์‹œ๊ฐ„๋ณต์žก๋„
    ํ† ์ต 900์ ๋Œ€
    ํ† ์ต
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
juno1105
ํŠธ๋ฆฌ(Tree) ์ „์œ„, ์ค‘์œ„, ํ›„์œ„ ์ˆœํšŒ with C์–ธ์–ด
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”