📄 sortstudentnodeid.java
字号:
/*
* SortStudentNode.java
*
* Created on 2008年4月5日, 下午3:09
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package finaltest;
/**
*
* @author Administrator
*/
public class SortStudentNodeID {
static SortStudentNodeID sortmynodeID;
static int sortdictory;
StudentNode index1,index2;
/** Creates a new instance of SortStudentNode */
public SortStudentNodeID() {
index1 =StudentNode.head;
for(;index1!=StudentNode.rear&&index1!=null;index1 =index1.next)
for(index2 =StudentNode.head;index2!=StudentNode.rear;index2=index2.next)
if(Integer.valueOf(index2.student.getId())>Integer.valueOf(index2.next.student.getId())){
exchangeNode(index2,index2.next);
index2 =index2.prev;
if(index2.next==index1)
index1 =index1.prev;
}
}
public SortStudentNodeID(int j) { //反序排列
index1 =StudentNode.head;
for(;index1!=StudentNode.rear && index1!=null;index1 =index1.next)
for(index2 =StudentNode.head;index2!=StudentNode.rear;index2=index2.next)
if(Integer.valueOf(index2.student.getId())
<Integer.valueOf(index2.next.student.getId())){
exchangeNode(index2,index2.next); //调用节点交换方法。
index2 =index2.prev;
if(index2.next==index1)
index1 =index1.prev;
}
}
public void exchangeNode(StudentNode temp1,StudentNode temp2){//节点交换
if(temp1==StudentNode.head && temp2==StudentNode.rear){ //只有两个节点
temp1.prev =temp2;
temp2.next =temp1;
temp1.next =null;
temp2.prev =null;
StudentNode.head =temp2;
StudentNode.rear =temp1;
System.out.println("两个节点而且要改");
}else if(temp1==StudentNode.head){ //头节点参与交换
temp2.next.prev =temp1; //尾节点不参与
temp1.next =temp2.next;
temp2.next =temp1;
temp1.prev =temp2;
temp2.prev =null;
StudentNode.head =temp2;
System.out.println("三个或以上,改1,2");
}else if(temp2==StudentNode.rear){ //尾节点参与交换
temp1.prev.next =temp2; //头节点不参与
temp2.prev =temp1.prev;
temp1.prev =temp2;
temp2.next =temp1;
temp1.next =null;
StudentNode.rear =temp1;
System.out.println("三个或以上,改末尾");
}else{ //中间节点交换
temp1.prev.next =temp2;
temp2.next.prev =temp1;
temp1.next =temp2.next;
temp2.prev =temp1.prev;
temp1.prev =temp2;
temp2.next =temp1;
System.out.println("改中间");
}//else
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -