赞
踩
class Link3
{
public int data;
Link3 next;
public Link3(int data)
{
this.data=data;
}
public void showData()
{
System.out.println("data "+data);
}
}
public void add( int key)
{
Link3 newNode=new Link3(key);
//先向链表中添加数据,再进行排序
Link3 privious=null;
Link3 current=first;
while(current!=null&¤t.data<key)//指针后移
{
privious=current;
current=current.next;
}
if(privious==null)//如果数据再链表头部插入
{
first=newNode;
}
//如果不是在链表头部插入
else
{
//newNode=privious;
privious.next=newNode;
}
newNode.next=current;
}
privious=current;
current=current.next;
public Link3 remove()
{
Link3 temp=first;
first=first.next;
return temp;
}
public void showList()
{
Link3 current=first;
while(current!=null)
{
current.showData();
current=current.next;
}
}
SortLinkList linklist=new SortLinkList();
linklist.add(1);
linklist.add(2);
linklist.add(3);
linklist.add(4);
linklist.add(8);
linklist.add(7);
linklist.add(6);
linklist.add(5);
linklist.showList();
linklist.remove();
linklist.remove();
linklist.showList();
data 1
data 2
data 3
data 4
data 5
data 6
data 7
data 8
data 3
data 4
data 5
data 6
data 7
data 8
public class SortLinkListArrayApp {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int size=8;
Link4[] linkArray=new Link4[size];
for(int j=0;j<size;j++)
{
int n=(int)(Math.random()*10);
Link4 newNode=new Link4(n);
linkArray[j]=newNode;
}
//输出排序之前的数组
System.out.println("排序之前的数据:");
for(int k=0;k<size;k++)
{
linkArray[k].showData();
}
//排序
SortLinkListArray sortLink=new SortLinkListArray(linkArray);
//将排序后的数据存入Link数组,更新数据
for(int m=0;m<size;m++)
{
linkArray[m]=sortLink.remove();
}
//输出排序后的数组
System.out.println("排序之后的数据:");
for(int n=0;n<size;n++)
{
//System.out.println(linkArray[n].data);
linkArray[n].showData();
}
}
}
class Link4
{
public int data;
Link4 next;
public Link4(int data)
{
this.data=data;
}
public void showData()
{
System.out.println("data "+data);
}
}
class SortLinkListArray
{
Link4 first;
//此处通过构造函数进行排序 Link数组作为参数进行传递
public SortLinkListArray(Link4[] linkArr)
{
first=null;
for(int i=0;i<linkArr.length;i++)
{
this.add(linkArr[i].data);
}
}
public void add( int key)
{
Link4 newNode=new Link4(key);
//先向链表中添加数据,再进行排序
Link4 privious=null;
Link4 current=first;
while(current!=null&¤t.data<key)//指针后移
{
privious=current;
current=current.next;
}
if(privious==null)//如果数据再链表头部插入
{
first=newNode;
}
//如果不是在链表头部插入
else
{
//newNode=privious;
privious.next=newNode;
}
newNode.next=current;
}
public Link4 remove()
{
Link4 temp=first;
first=first.next;
return temp;
}
public void showList()
{
Link4 current=first;
while(current!=null)
{
current.showData();
current=current.next;
}
}
}
排序之前的数据:
data 2
data 2
data 4
data 9
data 1
data 3
data 2
data 1
排序之后的数据:
data 1
data 1
data 2
data 2
data 2
data 3
data 4
data 9
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。