2016-06-11 124 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我背部。!