ํž™ 2

ํž™ ๊ฐœ๋…

ํž™์˜ ์ถ”์ƒ์ž๋ฃŒํ˜• void HeapInit(Heap *ph, PriorityComp pc) ์ดˆ๊ธฐํ™”ํ•  ํž™ ์ฃผ์†Œ ๊ฐ’์„ ์ธ์ž๋กœ ์ „๋‹ฌ ํ•ด์•ผํ•œ๋‹ค. ํž™ ์ƒ์„ฑ ํ›„ ์ œ์ผ ๋จผ์ € ํ˜ธ์ถœ๋˜์–ด์•ผ ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ํž™์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ•  ํ•จ์ˆ˜๋ฅผ ์ธ์ž๋กœ ์ „๋‹ฌํ•œ๋‹ค. void HInsert(Heap *ph, HData data); ํž™์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜ data๋กœ ์ „๋‹ฌ๋œ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. HData HDelete(Heap *ph); ์ €์žฅ์ˆœ์„œ๊ฐ€ ๊ฐ€์žฅ ์•ž์„  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•œ๋‹ค. ์‚ญ์ œ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ฐ˜ํ™˜๋œ๋‹ค. ๋ณธ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์„ ์œ„ํ•ด์„œ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ ์กด์žฌํ•จ์ด ๋ณด์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค. ํž™์€ ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ์ด๋ฉด์„œ ์–ด๋А ์œ„์น˜์—์„œ๋„ ๋‹ค์Œ ์‹์ด ์„ฑ๋ฆฝํ•œ๋‹ค. ์ž์‹ ๋…ธ๋“œ ๋ฐ์ดํ„ฐ์˜ ์šฐ์„ ์ˆœ์œ„ ≤ ๋ถ€๋ชจ๋…ธ๋“œ ๋ฐ์ดํ„ฐ์˜ ์šฐ์„ ์ˆœ์œ„ ํž™์˜ ์ €์žฅ๊ณผ์ • ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ์˜ ์šฐ์„ ์ˆœ์œ„..

ํŠธ๋ฆฌ ๊ฐœ๋… ๋ฐ ๊ตฌํ˜„

ํŠธ๋ฆฌ๋Š” ๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ๋‹ค๋ฅด๊ฒŒ ๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ํŠธ๋ฆฌ๋Š” ๊ฐ€์ง€๋ฅผ ๋ป—์–ด ๋‚˜์•„๊ฐ„๋‹ค. ํŠธ๋ฆฌ์˜ ์ถ”์ƒ ์ž๋ฃŒํ˜• BTreeNode *MakeBtreeNode(void); ์ด์ง„ ํŠธ๋ฆฌ ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ทธ ์ฃผ์†Œ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. BTData GetData(BTreeNode *bt); ๋…ธ๋“œ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. void SetData(BTreeNode *bt, BTData data); ๋…ธ๋“œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. data๋กœ ์ „๋‹ฌ๋œ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. BTreeNode *GetLeftSubTree(BTreeNode *bt); ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์˜ ์ฃผ์†Œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. BTreeNode *GetRIghtSubTree(BTreeNode *bt); ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์˜ ์ฃผ์†Œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. void MakeLeftSubTree(BTreeN..