デュアルネックレステーブルのデータ構造を操作します

次のような以前に与えられた個々のCRUD操作のリストは、二重リンクリストの操作の一部であります

パッケージcom.ebiz.list; 

/ ** 
 * @author YHJ 
 * @Create 2019年7月17日午後04時48分
 * / 
パブリック クラスDoubleListDemo { 

    公共 静的 ボイドメイン(文字列[]引数){ 

        // ノード作成 
        HeroNode heroNode01 = 新しい新規の HeroNode(1、 "曲江"、 "タイムリー" ); 
        HeroNode heroNode02 = 新しい新しい HeroNode(2 "盧俊義"、 "キリン" ); 
        HeroNode heroNode03 = 新しい新しい HeroNode(3、 "役に立たない"、 "マスターマインド" ); 
        HeroNode heroNode04 = 新しい新しい HeroNode(4、 "林"、 "Leopardのヘッド" );

        // 二重連結リストを作成 
        DoubleList doubleList = 新しい新しいDoubleListを();
         // ノードを追加
        doubleList.add(heroNode01); 
        doubleList.add(heroNode02); 
        doubleList.add(heroNode03); 
        doubleList.add(heroNode04); 

        // ノードトラバース
        doubleList .LIST(doubleList); 

        // 変更ノード 
        doubleList.update(新新 HeroNode(3、 "便利"、 "夢" )); 
        System.out.printlnは(ノードを変更」した後、横断---------- ------------------------------------ " ); 
        doubleList.list(doubleList); 

        // ノードを削除します
        System.out.println(「ノードを削除します----------------------------------------- ----------- " ); 
        doubleList.del( 4。); 
        doubleList.list(doubleList); 
    } 


} 

// objectlist 
クラスdoubleList { 

    // 最初のノード初期化
    プライベート   HeroNodeヘッド= 新しい新しい(HeroNodeを0、 ""、 "" ); 

    // ノードトラバーサル
    公共 ボイドリスト(doubleList doubleList){
         // 空気か否かを判断する
        場合ヌル == doubleList.head.next){ 
            するSystem.out.printlnは( "リストが空です。" ); 
        } 
        //一時的なノード 
        HeroNodeのTEMP = head.next;
         ながら真の){
             IFヌル == TEMP){
                 BREAK ; 
            } 
            のSystem.out.println( "TEMP =" + TEMP); 
            TEMP = temp.next; 
        } 
    } 

    // 新しいですノードによって
    公共 のボイドアドオン(heroNode heroNode){
         // 一時的なノード 
        heroNodeのTEMP = ヘッド;
         //は、最後のノードを見つける
        しばらくtrueに){
            IF(temp.next == NULL ){
                 BREAK ; 
            } 
            TEMP = temp.nextが; 
        } 
        // whileループは終了し、最後のノードを見つけるために、新規ノード追加 
        temp.next = heroNodeと、
        heroNode.pre = TEMP; 
    } 

    // 口コミコレスポンデントノード
    のパブリック ボイドアップデート(heroNode heroNode){
         // 一時的なノード 
        heroNodeのTEMP = ヘッド;
         // ブールリストに対応するノードが存在するかどうかを決定する
        ブール = ISEXISTをfalseに

        しばらく真の){
            もしヌル == TEMP){
                 ブレーク
            } 
            であれば(temp.no == heroNode.no){ 
                isExist = 破ります; 
            } 
            TEMP = temp.next。
        } 
        であれば(isExist){ 
            temp.name = heroNode.name。
            temp.nickname = heroNode.nickname。
        } { 
            するSystem.out.println( "没有对应英雄!!!" ); 
        }
    } 

    //ノード削除
    、公開  のボイド・デル(int型NO){
         IFヌル == head.next){ 
            System.out.printlnは( "リストが空で、削除することはできません!" ); 
        } 
        // 定義識別子
        ブール ISEXISTを= falseに;
         // 一時ノード定義 
        HeroNodeのTEMP = head.next;
         ながら真の){
             IFヌル == TEMP){
                 BREAK ; 
            } 
            IF(temp.no == NO){ 
                ISEXIST =trueにBREAK ; 
            } 
            TEMP = ; temp.next 
        } 
        IF (ISEXIST){ 
            temp.pre.next = temp.next;
             // 現在のノードは、その後、さらにリターンヌルポインタ例外を行い、最後のノードである
            IFNULL!= TEMP。次){ 
                temp.next.pre = temp.pre; 
            } 
        } { 
            するSystem.out.println( "NOノード!" ); 
        } 
    } 

} 



// ノードクラスの
クラス{HeroNode
     公共 INT NO; // 主人公番号
    パブリック文字列名; // 主人公の名前
    パブリック文字列ニックネーム; // 主人公の名前
    パブリック HeroNode次に; // 次のノードヒーロー
    パブリック HeroNodeプレ; // ヒーローノード


    // コンストラクタ
    パブリック(HeroNodeをINT {NO、文字列名、文字列のニックネーム)
         この .NO = ; NO
         この .nameの= 名;
         この .nickname = ニックネーム; 
    } 

    @Override 
    公衆文字列のtoString(){
         リターン "HeroNode {" + 
                "NO =" +なし+ 
                "NAME = '" +名+ '\'' + 
                "ニックネーム= '" +ニックネーム+ '\'' + 
                '}' 
    } 
}

 

おすすめ

転載: www.cnblogs.com/jiushixihuandaqingtian/p/11203968.html