Java单链表排序方法
来源:互联网 发布:农村电商淘宝服务站 编辑:程序博客网 时间:2024/06/15 04:14
import java.util.Scanner;/** * JAVA用链表实现的冒泡排序 * @author mengfeiyang * */public class ListSort {public static void main(String[] args) {ListClass list = new ListClass();Scanner scan = new Scanner(System.in);int i, size;System.out.print("请输入链表的大小:");size = scan.nextInt();for(i=0; i<size; i++){list.addAt(i, scan.nextInt());}System.out.println("链表结点一览:");list.listAll();list.bubbleSort();System.out.println("排序后的链表结点一览:");list.listAll();}}/** * 链表结点类 */class NodeClass{private int data;private NodeClass next; //链表结点的指针域,指向直接后继结点 public NodeClass(){next = null;} public NodeClass(int data, NodeClass next){this.data = data;this.next = next;} public int getData(){return this.data;} public void setData(int data){this.data = data;} public NodeClass getNext(){return this.next;} public void setNext(NodeClass next){this.next = next;}}/** * 链表类 */class ListClass{private NodeClass head = null; //头结点指针private int size = 0; public ListClass(){head = new NodeClass();size = 0;}//在i位置插入元素elempublic boolean addAt(int i, int elem) {if(i < 0 || i > size){return false;}NodeClass pre,curr;int pos;for(pre=head; i>0 && pre.getNext()!=null; i--,pre=pre.getNext());curr = new NodeClass(elem, pre.getNext());pre.setNext(curr);size++;return true;} public NodeClass getHead(){return this.head;} public void setHead(NodeClass head){this.head = head;} public int getSize(){return this.size;} public boolean isEmpty(){return (size==0);} public void listAll(){for(NodeClass curr=head.getNext(); curr!=null; curr=curr.getNext()){System.out.print(curr.getData() + "\t");}System.out.println();}public void bubbleSort(){NodeClass p, q;int temp;for(p=head.getNext(); p.getNext()!=null; p=p.getNext()){for(q=head.getNext(); q.getNext()!=null; q=q.getNext()){if(q.getData() > q.getNext().getData()){temp = q.getData();q.setData(q.getNext().getData());q.getNext().setData(temp);}}}}}
0 0
- Java单链表排序方法
- java各种排序方法
- JAVA排序的方法
- java各种排序方法
- java排序方法
- java 排序方法
- Java集合排序方法
- java 排序方法
- java排序方法小结
- 排序方法(java语言)
- java的排序方法
- Java排序方法总结
- JAVA基本排序方法
- Java排序方法
- java排序的方法
- Java常见排序方法
- JAVA排序方法
- java排序方法
- MySql学习笔记(一)
- Java实现的单链表反转方法(1)
- C语言 每天做一道编程题
- 关于screen工具的使用总结
- C++之虚函数
- Java单链表排序方法
- C语言小编程之素数算法剖析
- 检测程序是c还是cpp
- Java day02 类型转换
- Week3:构造一个简单的Linux系统MenuOS
- SYSU_月赛
- python之Class属性定义和访问
- Git常用命令
- 使用MySql过程中遇到的错误