Java创建单链表并直接选择排序输出

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/KevinWu93/article/details/48771729

RT

写Java也一年左右了,第一次用Java写单链表。。。

废话少说,代码如下:

import java.util.Scanner;

public class Exp1 {

	public static void main(String[] args) {
		Node no = addNode();
		P(no);
		P(sortNode(no));
	}

	// 打印单链表
	static void P(Node a) {
		a = a.next;
		while (a != null) {
			System.out.print(a.data + " ");
			a = a.next;
		}
		System.out.println();
	}

	// 添加元素
	static Node addNode() {
		Node head = new Node(0);
		Node t = null;
		t = head;
		System.out.println("输入:");
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		do {
			Node tail = new Node();
			tail.data = a;
			tail.next = null;
			head.next = tail;
			head = tail;
		} while (sc.hasNext() && (a = sc.nextInt()) != -1);
		sc.close();
		return t;
	}

	// 直接选择排序单链表
	static Node sortNode(Node head) {
		Node t = null;
		t = head;
		int min = 0;
		int temp = 0;
		Node p, q, m;
		p = q = m = head;
		while (p.next != null) {
			m = q = p.next;
			min = q.data;
			while (q != null) {
				if (q.data < min) {
					m = q;
					min = q.data;
				}
				q = q.next;
			}
			if (p.next != m) {
				temp = p.next.data;
				p.next.data = m.data;
				m.data = temp;
			}
			p = p.next;
		}
		return t;
	}

}

class Node {
	int data;
	Node next;

	public Node(int data) {
		this.data = data;
		next = null;
	}

	public Node() {
	}
}


猜你喜欢

转载自blog.csdn.net/KevinWu93/article/details/48771729
今日推荐