⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sortstudentnodeid.java

📁 学生信息管理系统
💻 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 + -