问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JAVA怎样用链表来实现冒泡排序,我需要整个编程过程,谢谢

发布网友 发布时间:2022-05-09 19:29

我来回答

2个回答

热心网友 时间:2023-10-15 05:20

Java程序:

import java.util.Scanner;

public class TesLinkList {
public static void main(String[] args) {
LinkList list = new LinkList();
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 Node{
private int data;
private Node next; //链表结点的指针域,指向直接后继结点

public Node(){
next = null;
}

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

public int getData(){
return this.data;
}

public void setData(int data){
this.data = data;
}

public Node getNext(){
return this.next;
}

public void setNext(Node next){
this.next = next;
}
}

/**
* 链表类
*/
class LinkList{
private Node head = null; //头结点指针
private int size = 0;

public LinkList(){
head = new Node();
size = 0;
}

//在i位置插入元素elem
public boolean addAt(int i, int elem) {
if(i < 0 || i > size){
return false;
}

Node pre,curr;
int pos;
for(pre=head; i>0 && pre.getNext()!=null; i--,pre=pre.getNext());
curr = new Node(elem, pre.getNext());
pre.setNext(curr);
size++;
return true;
}

public Node getHead(){
return this.head;
}

public void setHead(Node head){
this.head = head;
}

public int getSize(){
return this.size;
}

public boolean isEmpty(){
return (size==0);
}

public void listAll(){
for(Node curr=head.getNext(); curr!=null; curr=curr.getNext()){
System.out.print(curr.getData() + "\t");
}
System.out.println();
}

public void bubbleSort(){
Node 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);
}
}
}
}
}

运行测试:
请输入链表的大小:4
1
2
4
3
链表结点一览:
1243
排序后的链表结点一览:
1234

热心网友 时间:2023-10-15 05:21

public static void main(String[] args) {
int[] array = {3,2,4,1};
System.out.println(Arrays.toString(array));
int x = array.length;
for (int i = 0; i < x; i++) {
for (int j = 0; j < array.length; j++) {
if(j+1<array.length){
if(array[j]>array[j+1]){
int temp = array[j+1];
array[j+1]=array[j];
array[j]=temp;
}
}

}
System.out.println(Arrays.toString(array));
x = array.length-1;
}

}追问我是要用链表来做,不是用数组,就是用单链表来做

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 交互设计的“根”——七大定律 交互设计原则和理论2——七大定律 七大设计原则 附近的加油站有哪些 附近的加油站有哪些地方 浦元特钢(大连)有限公司怎么样? java中数组与链表排序 东北特钢集团大连钢厂怎么样? Java合并两个排序的链表问题(剑指offer) 大连特钢待遇如何 大连东北特钢咋样? 大连金鑫特钢有限公司怎么样? 抚顺特钢和大连特钢都是东北特钢集团的,它们区别是什么,哪里待遇好? 大连兴工特钢有限公司怎么样? 大连环新精密特钢股份有限公司怎么样? 东北特钢集团大连特殊钢有限责任公司怎么样? 大连东北特钢有多少部门 大连特殊钢有限公司8名工人死亡原因是什么? 东北特钢集团大连特殊钢有限责任公司的发展历程 大连特钢集团怎么样?待遇如何?是大型国有企业吗? 大连特钢 东北特钢 是不是一个企业? 大连特殊钢有限责任公司的产品资质 2010年快乐男声各赛区冠军 2010快乐男声全国300强都有谁啊? nova8pro支持陀螺仪吗 东北特钢集团大连银亮材有限公司怎么样? java数据结构 单链表排序问题 怎样对java中的单向链表中的数据进行排序 一个关于Java链表循环遍历,排序的问题。高手上了!!! JAVA实训题,创建两个单链表A、B,要求A、B的元素按升序排列,输出单链表A、B,然后将A、B合并成单链表C Java 创建链表,并添加10个元素 求一个java程序,要求能完成排序和查找,分别使用链表,数组和二叉树等数据结构,比较各种方法的优缺点。 java问题:怎样声明排序的双链表类 两个无序链表A和B,将其合并为递增排列的一个链表 Java语言 Java创建链表 编写一个函数向该单链表中插入一个元素为x的结点,使插入后该链表仍然有序。(请用java语言写) 对链表进行添加,删除,插入等方法,JAVA 当归和决明子泡在一起有什么药效功能啊? 决明子和当归是否可以同吃 胸腰椎轻度压缩性骨折的治疗与后遗症是什么,预后注意事项又有哪些?_百 ... 那位大师告诉我 六十岁以上的老人天天练倒立对身体有害吗? 当归生军决明子大云这些东西放一块有什么作用? 网络机顶盒如何连接无线 决明子,茯苓,当归,黄芪,白术陈皮,龙胆草,茵陈一起有什么效果? 胸腰椎压缩性骨折