자바로 링크드리스트를 만드는 과정입니다. 오름 차순으로 정렬 되도록 해야되서 add 메소드를 이렇게 정의하였습니다. <div><div><font color="#c00000"><br /></font></div> <div> <div><font color="#c00000">public class SortedLinkedList<T extends Comparable<T>> extends LinkedList<T> {</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>@Override</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>public void add(T item) {</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>Node newNode = new Node();</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>newNode.item = item;</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>newNode.next = null;</font></div> <div><span class="Apple-tab-span" style="white-space: pre"><font color="#c00000"> </font></span></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>if(list == null)</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>{</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("loc == null");</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>list = newNode;</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>++size;</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>}</font></div> <div><span class="Apple-tab-span" style="white-space: pre"><font color="#c00000"> </font></span></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>else </font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>{</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>Node prevLoc = null;</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>Node loc = list;</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>while(loc!=null)</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>{</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>int comp = item.compareTo(loc.item);</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println(comp);</font></div> <div><span class="Apple-tab-span" style="white-space: pre"><font color="#c00000"> </font></span></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>if(comp>0)</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>{ </font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("cmp > 0");</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>loc.next = newNode;</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>++size;</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>break;</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>}</font></div> <div><span class="Apple-tab-span" style="white-space: pre"><font color="#c00000"> </font></span></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>else if(comp==0){</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("중복숫자를 입력하였습니다.");</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>break;</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>}</font></div> <div><span class="Apple-tab-span" style="white-space: pre"><font color="#c00000"> </font></span></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>else{</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("cmp < 0");</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>prevLoc = newNode;</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>newNode.next = list;</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>list = newNode;</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>++size;</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>break;</font></div> <div><span class="Apple-tab-span" style="white-space: pre"><font color="#c00000"> </font></span></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>}</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>}</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>}</font></div> <div><font color="#c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>}</font></div></div></div> <div><font color="#c00000"><br /></font></div> <div><font color="#c00000"><br /></font></div> <div>그리고 테스트 클래스를 만들어 테스트를 해보면</div> <div><font color="#c00000"><br /></font></div> <div><div style="color: #c00000">public class Test {</div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>public static void main(String[] args) {</div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>//LinkedList<Integer> llist = new sortedLinkedList<Integer>();</div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>LinkedList<Integer> list = new SortedLinkedList<Integer>();</div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span></div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>list.add(5);</div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>list.add(3);</div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>list.add(10);</div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>//list.add(7);</div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span></div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>for(Integer i: list){</div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println(i);</div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>}</div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span></div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>//System.out.println(1);</div> <div style="color: #c00000"><span class="Apple-tab-span" style="white-space: pre"> </span>}</div> <div style="color: #c00000">}</div> <div style="color: #c00000"><br /></div> <div>이클립스 콘솔에는 아래와 같은 값이 나오며 결과적으로 링크드리스트 출력은 3하고 10이 됩니다. 왜이렇게 계속 2개의 값만 나오는지 이해가 안됩니다 </div> <div><br /></div> <div> <div>loc == null</div> <div>-1</div> <div>cmp < 0</div> <div>1</div> <div>cmp > 0</div> <div><span style="font-size: 9pt; line-height: 1.5">3</span></div> <div>10</div></div></div> <div><br /></div> <div><br /></div> <div><div>작은 도움이라도 힌트라도 도움주시면 감사하겠습니다.</div></div> <div><br /></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.