<div>글마다 질문글이라 대단히 죄송합니다.</div> <div>단순 연결 리스트를 공부하던 중 노드(정수 데이터)를 삽입할 때 정렬을 시키려고 합니다.</div> <div>두세시간 머리를 굴리고 이리 수정, 저리 수정해봐도 잘 되지 않습니다.</div> <div> </div> <div>단순 연결 리스트라 이전 노드를 before 로 저장해두었다가 사용하는 게 제 의도인데,</div> <div>printf 문을 통해 테스트를 해보니 before와 pos가 같은 값을 나타냅니다.</div> <div>저 상태에서 이전 노드의 값을 어떤 식으로 받으면 좋을지 알려주시면 감사하겠습니다.</div> <div> </div> <div>void insert_node(ListNode **phead, ListNode *p, ListNode *new_node)<br>{<br> ListNode *pos = *phead;<br> ListNode *before = *phead;<br> if(*phead==NULL)<br> {<br> new_node->link = NULL;<br> *phead = new_node;<br> }<br> else if(p==NULL)<br> {<br> new_node->link = *phead;<br> *phead = new_node;<br> }<br> else<br> {<br> while(pos->link != NULL)<br> {<br> if((pos->data) > (new_node->data))<br> {<br> before = pos;<br> pos = pos->link;<br> }<br> else<br> {<br> break;<br> }<br> }</div> <div>}</div> <div> </div> <div> </div> <div> </div> <div> </div> <div>main</div> <div> </div> <div> insert_node(&list, list, create_node(3, NULL));<br> insert_node(&list, list, create_node(2, NULL));<br> insert_node(&list, list, create_node(5, NULL));<br> insert_node(&list, list, create_node(9, NULL));<br> insert_node(&list, list, create_node(7, NULL));<br> display(list);<br></div> <div> </div> <div> </div> <div> </div> <div>결과</div> <div> </div> <div>2, 3, 3<br>5, 3, 3<br>9, 3, 3<br>7, 3, 3<br>3 -> 7 -> 9 -> 5 -> 2 -><br> printf("%d, %d, %d\n", new_node->data, before->data, pos->data);<br> new_node->link = before->link;<br> before->link = new_node;<br> }<br>}</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.