插入到Sorted LinkedList Java中 [英] Inserting into Sorted LinkedList Java
问题描述
我有下面的代码,我插入一个新的整数到一个排序的LinkedList的ints,但我不认为这是正确的做事情的方式,因为我知道有单一的链表,指向下一个值,双向链表具有指向下一个和上一个值的指针。我尝试使用Nodes来实现下面的情况,但是Java正在导入这个import org.w3c.dom.Node(文档对象模型),所以卡住了。
I have this code below where I am inserting a new integer into a sorted LinkedList of ints but I do not think it is the "correct" way of doing things as I know there are singly linkedlist with pointer to the next value and doubly linkedlist with pointers to the next and previous value. I tried to use Nodes to implement the below case but Java is importing this import org.w3c.dom.Node (document object model) so got stuck.
插入案例
- 插入空数组
- 如果要插入的值小于一切,请插入开头。
- 如果要插入的值大于所有值,请插入最后一个。
-
如果值小于/大于LL中的某些值。
- Insert into Empty Array
- If value to be inserted less than everything, insert in the beginning.
- If value to be inserted greater than everything, insert in the last.
Could be in between if value less than/greater than certain values in LL.
import java.util.*;
public class MainLinkedList {
public static void main(String[] args) {
LinkedList<Integer> llist = new LinkedList<Integer>();
llist.add(10);
llist.add(30);
llist.add(50);
llist.add(60);
llist.add(90);
llist.add(1000);
System.out.println("Old LinkedList " + llist);
//WHat if you want to insert 70 in a sorted LinkedList
LinkedList<Integer> newllist = insertSortedLL(llist, 70);
System.out.println("New LinkedList " + newllist);
}
public static LinkedList<Integer> insertSortedLL(LinkedList<Integer> llist, int value){
llist.add(value);
Collections.sort(llist);
return llist;
}
}
推荐答案
这可能完美地满足您的目的:
This might serve your purpose perfectly:
代码:
import java.util.*;
public class MainLinkedList {
private static LinkedList<Integer> llist;
public static void main(String[] args) {
llist = new LinkedList<Integer>();
addValue(60);
addValue(30);
addValue(10);
addValue(-5);
addValue(1000);
addValue(50);
addValue(60);
addValue(90);
addValue(1000);
addValue(0);
addValue(100);
addValue(-1000);
System.out.println("Linked List is: " + llist);
}
private static void addValue(int val) {
if (llist.size() == 0) {
llist.add(val);
} else if (llist.get(0) > val) {
llist.add(0, val);
} else if (llist.get(llist.size() - 1) < val) {
llist.add(llist.size(), val);
} else {
int i = 0;
while (llist.get(i) < val) {
i++;
}
llist.add(i, val);
}
}
}
这个方法将以排序方式管理List中的插入,而不使用 Collections.sort(list)
This one method will manage insertion in the List in sorted manner without using Collections.sort(list)
这篇关于插入到Sorted LinkedList Java中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!