2016-06-11 160 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接口。它提供了一個鏈表數據結構。

從它的父類繼承的方法

除了,鏈表定義下面的方法:

空隙加載(INT指數,對象元素)在 插入指定的元素在此列表中的指定位置的索引。拋出 IndexOutOfBoundsException異常如果指定的索引是超出範圍 (索引< 0 ||指數>尺寸())。

空隙addfirst僅(對象O)插入在 該列表開始處的給定的元件。

空隙addlast僅(對象o)將給定元素追加到此 列表

對象獲取(INT指數)的端部在此 列表中指定位置返回元素。拋出IndexOutOfBoundsException異常如果指定的索引是 超出範圍(索引< 0 ||指數> =尺寸())。

我會告訴你的示例代碼。此五月幫助你,

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); 
} 
} 

如果您懷疑鏈表,請搜索關於數據結構上java..thank你 ..Vote我背部。!