2016-06-11 2 views
1

https://stackoverflow.com/questions/37538652/adding-an-element-to-a-sorted-list-and-keeping-it-sorted-in-ascending-order-jav이 스레드에 대한 귀하의 반응을 보았습니다.연결된 목록 정렬

삽입 요소의 위치는 어떻게 알 수 있습니까?

나는 처음으로 링크드리스트를 사용하려고하는 학생이지만 처음부터 끝까지 이해할 수 있지만 이미 시퀀스가있을 때 정확한 위치를 찾는 방법은 무엇입니까?

public void insertFirstPosition(int newElement) 
    { 
     ListOfNVersion03 temp = new ListOfNVersion03(thisNumber); 
     temp.next = next; 
     next = temp; 
     thisNumber = newElement; 

    } 

감사합니다.

+0

올바른 형식을 사용하십시오. 코드. – Sandeep

답변

0

나는 당신이 이미 정렬 한 목록 ...

그런 다음 하나 개의 링크에서 다음에 루프 반복을 기대합니다. 반복하면서 이전 노드를 저장합니다. 삽입하려는 노드보다 최악 인 첫 번째 노드를 찾을 때. 삽입 노드 옆에있는 이전 노드를 변경하고 삽입 노드는 현재 노드를 참조합니다.

// Pseudocode 
Node previousNode = root; 
while (previousNode.next != null) { 
    Node current = previousNode.next; 
    // Check current node 
    if (current.value < insert.value) { 
     previousNode.next = insert; 
     insert.next = current; 
     break; 
    } 
} 

말에 또한 케이스 삽입을 처리하는 것을 잊지 마세요

0

자사의 목록을 연결하기 때문에, 하나 하나의 노드를 통해 이동하고이를 찾기 위해 삽입하는 수를 비교해야 위치. public Link findLink(int n){ Link lk= firstLink; while (lk!=null){ if (lk.number<n) return lk; lk=lk.next; } return null; }

0

LinkedList 클래스는 AbstractSequentialList를 확장하고 List 인터페이스를 구현합니다. 연결된 목록 데이터 구조를 제공합니다. 부모 클래스에서 상속 방법에서 별도로

, LinkedList의는 다음과 같은 방법 정의

무효 추가 (INT 지수, 개체 요소) 에서리스트의 지정된 위치의 인덱스를, 지정된 요소를 삽입합니다. IndexOutOfBoundsException - 지정된 인덱스가 범위 외일 경우 (인덱스 < 0 || 인덱스> size()).

void addFirst (Object o) 이리스트의 선두에 지정된 요소를 삽입합니다.

무효의 addLast (Object o)이 목록

객체의 get (INT 지수)의 마지막에, 지정된 요소를 추가 리스트의 지정된 위치에있는 요소를 돌려줍니다. IndexOutOfBoundsException - 지정된 인덱스가 가 범위 외의 경우 (인덱스 < 0 || 인덱스> = size())를 슬로우합니다.

나는 예 월 당신을하는 데 도움이 코드를 제공해을 보여줍니다,

import java.util.*; 
public class LinkedListDemo{ public static void main(String args[]) 
{// create a linked list 
LinkedList ll =new LinkedList();// add elements to the linked list 
     ll.add("F"); 
     ll.add("B"); 
     ll.add("D"); 
     ll.add("E"); 
     ll.add("C"); 
     ll.addLast("Z"); 
     ll.addFirst("A"); 
     ll.add(1,"A2"); 
System.out.println("Original contents of ll: "+ ll);// remove elements from the linked list 
     ll.remove("F"); 
     ll.remove(2); 
System.out.println("Contents of ll after deletion: "+ ll);// remove first and last elements 
     ll.removeFirst(); 
     ll.removeLast(); 
System.out.println("ll after deleting first and last: "+ ll);// get and set a valueObject val = ll.get(2); 
     ll.set(2,(String) val +" Changed"); 
System.out.println("ll after change: "+ ll); 
} 
} 

당신은 의심의 여지에 대한 목록을 연결 한 경우, 당신이 나를 ..Vote java..thank에 데이터 구조에 대해 검색하십시오 뒤로.!

관련 문제