import java.util.Arrays;
public class OneLinkNode {
public int data;
public OneLinkNode next;
public OneLinkNode(int k) {
data = k;
next = null;
}
public OneLinkNode() {
this(0);
}
public static OneLinkNode combine2behind1(OneLinkNode head1,
OneLinkNode head2) {
OneLinkNode p = head1;
while (null != p.next) {
p = p.next;
}
p.next = head2;
return head1;
}
public static void sort(OneLinkNode head) {
int data[] = new int[10];
OneLinkNode p = head;
int i = 0;
while (p != null) {
data[i] = p.data;
i++;
p = p.next;
}
Arrays.sort(data);
p = head;
i=0;
while (p != null) {
p.data = data[i];
i++;
p = p.next;
}
}
public static void main(String args[]) {
int n = 5;
OneLinkNode head1 = create(n);
OneLinkNode head2 = create(n);
head1 = combine2behind1(head1, head2);
OneLinkNode p = head1;
while (p != null) {
System.out.print(" " + p.data + " ");
p = p.next;
}
System.out.println();
sort(head1);
p=head1;
while (p != null) {
System.out.print(" " + p.data + " ");
p = p.next;
}
}
public static OneLinkNode create(int n) { // 建立单链表
OneLinkNode rear, q, head = null;
if (n > 0) {
int k = (int) (Math.random() * 100);
head = new OneLinkNode(k);
rear = head;
for (int i = 0; i < n - 1; i++) {
k = (int) (Math.random() * 100);
q = new OneLinkNode(k);
rear.next = q;
rear = q;
}
}
return head;
}
public static boolean insert(OneLinkNode head, int n, int data) {// 在第n个后插入data
if (head == null)
return false;
OneLinkNode p = head;
for (int i = 0; i < n - 1; i++) {
p = p.next;
}
OneLinkNode newNode = new OneLinkNode();
newNode.data = data;
newNode.next = p.next;
p.next = newNode;
return true;
}
public static boolean delete(OneLinkNode head, int n) {// 把第n个删除
if (head == null)
return false;
OneLinkNode p1 = head;
for (int i = 0; i < n - 2; i++) {
p1 = p1.next;
}
p1.next = p1.next.next;
return true;
}
}