用java实现单链表的有序插入。在一组有序的数中,从键盘输入一个元素值key,保证这组数仍然有序。
时间: 2024-06-08 11:06:33 浏览: 55
可以使用Java实现单链表的有序插入,以下是一个示例代码:
```java
public class Node {
int data;
Node next;
public Node(int data) {
this.data = data;
this.next = null;
}
}
public class SortedLinkedList {
Node head;
// 插入节点
public void insert(int data) {
Node newNode = new Node(data);
if (head == null || data < head.data) {
newNode.next = head;
head = newNode;
} else {
Node current = head;
while (current.next != null && current.next.data < data) {
current = current.next;
}
newNode.next = current.next;
current.next = newNode;
}
}
// 打印链表
public void display() {
Node current = head;
while (current != null) {
System.out.print(current.data + " ");
current = current.next;
}
System.out.println();
}
public static void main(String[] args) {
SortedLinkedList list = new SortedLinkedList();
// 从键盘输入一组有序的数
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一组有序的数(以逗号分隔):");
String input = scanner.nextLine();
String[] nums = input.split(",");
// 依次插入节点
for (String num : nums) {
int data = Integer.parseInt(num.trim());
list.insert(data);
}
// 从键盘输入一个元素值key,并进行有序插入
System.out.println("请输入要插入的元素值:");
int key = scanner.nextInt();
list.insert(key);
// 打印链表
System.out.println("插入后的有序链表:");
list.display();
}
}
```
以上代码中,我们首先定义了一个`Node`类表示链表的节点,然后定义了一个`SortedLinkedList`类表示有序链表。在`SortedLinkedList`类中,我们实现了`insert`方法用于有序插入节点,以及`display`方法用于打印链表。
在`main`方法中,我们首先从键盘输入一组有序的数,并将其插入到链表中。然后从键盘输入一个元素值key,并将其有序插入到链表中。最后,打印插入后的有序链表。
请注意,以上代码只是示例,可能需要根据实际情况进行适当修改和完善。