现在的位置: 首页 > 综合 > 正文

连接两个单向链表,返回排序后的结果。

2013年12月04日 ⁄ 综合 ⁄ 共 1671字 ⁄ 字号 评论关闭

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

}

抱歉!评论已关闭.