<div class="colorscripter-code" style="overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"><span style="background-color:#fafafa;">알고리즘 수업을 듣고있는데요 그래프에 관해 인접 행렬로 표현된 그래프를 받아 인접 리스트로 변환하는 함수를 만드는 과제가 나왔었습니다.</span></div> <div class="colorscripter-code" style="overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"><span style="background-color:#fafafa;">graph_list_type *cvt_garray2glist(graph_array_type *g); 라는 이름으로 함수를 작성하는 것이 과제였는데 저는 주소를 반환하는 함수에 대해 잘 알지못해</span></div> <div class="colorscripter-code" style="overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"><span style="background-color:#fafafa;"><br></span></div> <div class="colorscripter-code" style="overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"> <div class="colorscripter-code" style="color:#010101;overflow:auto;"> <table class="colorscripter-code-table" style="margin:0px;padding:0px;border:none;background-color:#fafafa;" cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:6px;border-right-width:2px;border-right-style:solid;border-right-color:#e5e5e5;"> <div style="margin:0px;padding:0px;text-align:right;color:#666666;line-height:130%;"> <div style="line-height:130%;">1</div> <div style="line-height:130%;">2</div> <div style="line-height:130%;">3</div> <div style="line-height:130%;">4</div> <div style="line-height:130%;">5</div> <div style="line-height:130%;">6</div> <div style="line-height:130%;">7</div> <div style="line-height:130%;">8</div> <div style="line-height:130%;">9</div> <div style="line-height:130%;">10</div> <div style="line-height:130%;">11</div> <div style="line-height:130%;">12</div> <div style="line-height:130%;">13</div> <div style="line-height:130%;">14</div> <div style="line-height:130%;">15</div> <div style="line-height:130%;">16</div></div></td> <td style="padding:6px 0px;"> <div style="margin:0px;padding:0px;color:#010101;line-height:130%;"> <div style="padding:0px 6px;white-space:pre;line-height:130%;">graph_list_type <span style="color:#a71d5d;">*</span>cvt_garray2glist(graph_array_type <span style="color:#a71d5d;">*</span>g) {</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> <span style="color:#066de2;">int</span> i, j;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> graph_list_type temp; <span style="color:#999999;">// 임시 인접 리스트</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> graph_init(&temp); <span style="color:#999999;">// 리스트 초기화</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#a71d5d;">for</span> (i <span style="color:#a71d5d;">=</span> <span style="color:#0099cc;">0</span>; i <span style="color:#a71d5d;"><</span> g<span style="color:#a71d5d;">-</span><span style="color:#a71d5d;">></span>n; i<span style="color:#a71d5d;">+</span><span style="color:#a71d5d;">+</span>) {</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> insert_vertex(&temp, i); <span style="color:#999999;">// 정점 추가 // temp.n = g->n과 같음</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> }</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> <span style="color:#a71d5d;">for</span> (i <span style="color:#a71d5d;">=</span> <span style="color:#0099cc;">0</span>; i <span style="color:#a71d5d;"><</span> g<span style="color:#a71d5d;">-</span><span style="color:#a71d5d;">></span>n; i<span style="color:#a71d5d;">+</span><span style="color:#a71d5d;">+</span>) {</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#a71d5d;">for</span> (j <span style="color:#a71d5d;">=</span> <span style="color:#0099cc;">0</span>; j <span style="color:#a71d5d;"><</span> g<span style="color:#a71d5d;">-</span><span style="color:#a71d5d;">></span>n; j<span style="color:#a71d5d;">+</span><span style="color:#a71d5d;">+</span>) {</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> <span style="color:#a71d5d;">if</span> (g<span style="color:#a71d5d;">-</span><span style="color:#a71d5d;">></span>a[i][j] <span style="color:#a71d5d;">=</span><span style="color:#a71d5d;">=</span> <span style="color:#0099cc;">1</span>) { <span style="color:#999999;">// 인접 행렬에서 두 정점이 이어져있을 경우</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> insert_edge(&temp, i, j); <span style="color:#999999;">// 인접 리스트의 두 정점에 간선 삽입</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> }</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> }</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> }</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#a71d5d;">return</span> &temp;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;">}</div></div> <div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic;"><a target="_blank" href="http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5;text-decoration:none;">Colored by Color Scripter</a></div></td> <td style="vertical-align:bottom;padding:0px 2px 4px 0px;"><a target="_blank" href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:#FFFFFF;"><span style="font-size:9px;padding:1px;background-color:#e5e5e5;">cs</span></a></td></tr></tbody></table><br></div> <div class="colorscripter-code" style="color:#010101;overflow:auto;">이런 식으로 함수를 작성하고 </div> <div class="colorscripter-code" style="color:#010101;overflow:auto;"><br></div> <div class="colorscripter-code" style="color:#010101;overflow:auto;"> <div class="colorscripter-code" style="overflow:auto;"> <table class="colorscripter-code-table" style="margin:0px;padding:0px;border:none;background-color:#fafafa;" cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:6px;border-right-width:2px;border-right-style:solid;border-right-color:#e5e5e5;"> <div style="margin:0px;padding:0px;text-align:right;color:#666666;line-height:130%;"> <div style="line-height:130%;">1</div> <div style="line-height:130%;">2</div> <div style="line-height:130%;">3</div> <div style="line-height:130%;">4</div> <div style="line-height:130%;">5</div> <div style="line-height:130%;">6</div> <div style="line-height:130%;">7</div> <div style="line-height:130%;">8</div> <div style="line-height:130%;">9</div> <div style="line-height:130%;">10</div> <div style="line-height:130%;">11</div> <div style="line-height:130%;">12</div> <div style="line-height:130%;">13</div> <div style="line-height:130%;">14</div> <div style="line-height:130%;">15</div> <div style="line-height:130%;">16</div> <div style="line-height:130%;">17</div> <div style="line-height:130%;">18</div> <div style="line-height:130%;">19</div> <div style="line-height:130%;">20</div> <div style="line-height:130%;">21</div> <div style="line-height:130%;">22</div></div></td> <td style="padding:6px 0px;"> <div style="margin:0px;padding:0px;color:#010101;line-height:130%;"> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">int</span> main(<span style="color:#a71d5d;">void</span>) { <span style="color:#999999;">// 0 1 2 3 4 5 6 7 8 9</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> graph_array_type g <span style="color:#a71d5d;">=</span> { <span style="color:#0099cc;">10</span>,{ { <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span> ,<span style="color:#0099cc;">0</span> }, <span style="color:#999999;">// 0</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> { <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span> }, <span style="color:#999999;">// 1</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> { <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span> }, <span style="color:#999999;">// 2</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> { <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span> }, <span style="color:#999999;">// 3</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> { <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span> }, <span style="color:#999999;">// 4</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> { <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span> }, <span style="color:#999999;">// 5</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> { <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span> }, <span style="color:#999999;">// 6</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> { <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">1</span> }, <span style="color:#999999;">// 7</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> { <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span> }, <span style="color:#999999;">// 8</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> { <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span> } } };<span style="color:#999999;">// 9</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> graph_list_type list_g; <span style="color:#999999;">// 인접 리스트로 표현된 그래프</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> graph_init(&list_g); <span style="color:#999999;">// 인접 리스트 초기화</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> <span style="color:#066de2;">printf</span>(<span style="color:#63a35c;">"────────────리 스 트──────────── \n"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> list_g <span style="color:#a71d5d;">=</span> <span style="color:#a71d5d;">*</span>cvt_garray2glist(&g); <span style="color:#999999;">// 인접 행렬을 이용한 그래프에서</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> <span style="color:#999999;">// 인접 리스트를 이용한 그래프로 변환</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> print_alist(&list_g); <span style="color:#999999;">// 인접 리스트로 표현된 그래프 표시</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#a71d5d;">return</span> <span style="color:#0099cc;">0</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;background-color:#f0f0f0;">}</div></div> <div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic;"><a target="_blank" href="http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5;text-decoration:none;">Colored by Color Scripter</a></div></td> <td style="vertical-align:bottom;padding:0px 2px 4px 0px;"><a target="_blank" href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:#FFFFFF;"><span style="font-size:9px;padding:1px;background-color:#e5e5e5;">cs</span></a></td></tr></tbody></table><br></div> <div class="colorscripter-code" style="overflow:auto;">이런 식으로 main()함수를 작성하였습니다. 오늘 교수님께서 보고서를 나눠주시면서 이렇게 작성하면 절대 동작하지 않는다고 <span style="font-size:9pt;line-height:1.5;">함수를 호출할 때 * 붙이는 함수가 어딨냐고 하셨습니다. list_g를 포인터형으로 선언하여서 list_g = cvt_garray2glist(&g); 로 해주어야한다고 하셨는데 저는 분명 저게 작동을 하는 것을 확인하고 과제를 제출한 것인데 어째서 절대 동작할 수 있는 프로그램이 아니라고 하시는 걸까요?</span></div> <div class="colorscripter-code" style="overflow:auto;"><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div class="colorscripter-code" style="overflow:auto;">제가 했을 때는 제대로 역할을 수행하였다고 말씀을 드려도 교수님은 왜 인지는 설명을 안해주시고 그냥 안된다고 틀린 것이라고만 하십니다.</div> <div class="colorscripter-code" style="overflow:auto;">왜 안되는건가요?</div></div></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.