単独リンクリストのJava実装と関連する操作(バージョン3)

   より多くの結合オブジェクト指向の考え方:;第二のパッケージ:最初の2つの利点が、単鎖クラスの内部を経由して第3版、そうあります。内部クラスノードノードリンクobjectlistを定義し、ノードが作成及び演算ノードを実行するため、objectlist担う内部接続ノードに関連する操作を実行する責任があります。コードは以下の通りであります:

リンクカテゴリ:
輸入java.net.Inet4Address;
/ **
 *これは、ノードクラスのobjectlistの内部にはさらに多くのオブジェクト指向の考え(ノードからなるリストで)一緒に貼り付けを書かれ、クラスリストで、このクラスアクションは、操作ノードである
 ノード動作する方法を定義*
 * /
publicクラスのリンク{
    
    プライベートノードルートを; //最初のノードセット
    の長さを計算するために使用//リンクリスト;プライベートint型のカウント= 0
    プライベートint型のインデックスを= 0; //インデックス定義
    プライベート文字列[] returnArray; //出力するためのリンクリストデータの配列を定義する
    
    パブリック文字列[]のtoArrayを(){
        IF(this.root == NULL){
            戻りNULL;
        }
        this.index = 0;
        this.returnArray =新しい新しいString [this.count];
        this.root.toArrayNode();
        this.returnArrayを返す;
    }
    
    // deleteメソッド
    公共ボイド削除(文字列データ){
        IF(this.contains(データ)){
            IF(data.equals(this.root.data)){
                this.root = this.root.next;
            }
        }他{
            this.root.next.removeNode(this.root、データ);
            //この場合、次のノードは、このノードです。ルート
        } this.count--;
    }
    
    //修飾法
    公共ボイドSET(INTインデックス、文字列データ){
        IF(指数>(-this.count 1)||インデックス<0){
            リターン;
        }
        this.index = 0 ;
        this.root.setNode(インデックスデータ);
    }

    / **
     *ノード情報を取得する
     * /
    パブリック文字列GET(INTインデックス){
        (インデックス>(-this.count 1)||インデックス<0){IF
            ヌルリターン;
        }
        this.index = 0;
        this.root.getNode(インデックス)を返す;
    }

    / **
     **ポインタノードがメソッド提供される
     * /
    公共ボイドsetIndex(INTインデックス){
        this.index =インデックスを;
    }
    
    //得られたリスト長
    公共int型のサイズ(){
        戻りthis.count;
    }
    
    //リストが空であるか否かを判断する
    パブリックブールのisEmpty(){
        this.count == 0を返す;
    }
    
    
    //方法containsNodeノードクラスを呼び出して、送信に係りますデータがあるか否かを判断する
    パブリックブール(文字列データ)が含ま{
        IF(データ== NULL || this.root == NULL){
            ;リターンfalseには
        }
        this.root.containsNodeリターン(データ);
    }
    
    パブリックリンク(){
    }
    メソッド呼び出しノード//クラスノード増加

    //増加は、ノードのみ考えるようにノードは、この操作のためのノードであることに留意すべきである
    公共のボイドの追加(文字列データ){
        IF(データ== NULL){
            ;リターン
        }
        =ノードノード新しい新しいノード(データ);
        this.count ++; //ノードを作成する++アウトカウント
        
        IF(this.root == nullの){
            this.root =ノード;
        }他{
            this.root.addNode(ノード);
        }
        
    }
    

// * ************************************************** ***************
    / **
     **このノードのクラスであり、これの役割は、ノードのクラスを作成することである
     * /
    プライベート・ノードクラス{
        プライベートデータ列;
        プライベート次のノード;
        
        //設定パラメータを持っている
        {パブリック・ノード(文字列データ)
            データ= this.data;
        }
        
        引数なし//コンストラクタ
        パブリック・ノード(){
        }
    
        
        / **
         リンクリストデータに*アレイ出力
         * /
        公共ボイドtoArrayNode(){
            Link.this.returnArray [Link.this.index ++] = this.data;
            IF(this.next = NULL!){
                this.next.toArrayNode();
            }
            
        }

        //最初の時間(リンク)前= this.rootコール; = Link.root.nextこの
        //秒以前= this.root.next呼び出し時間(ノード)= Link.root.next.next.nextこの
        公共ボイドがremoveNode(前のノード、文字列データ){
            IF(this.data.equals(データ)){
                previous.next = this.next。
                
            他{}
                this.next.removeNode(前の、データ); this.next親ノードがある//この
            }
            
        }
        
        / **
         * *ノード情報の設定方法
         * /
        パブリック無効setNode(int型のインデックス、文字列データ){
            IF (インデックス== Link.this.index ++){
                 this.data =データ;
            }そうでなければ{
                this.next.setNode(インデックスデータ);
                }
        }
        
        / **
         **ノード情報取得方法
         * /
        パブリック文字列getNodeを(INTインデックス){
            IF(インデックス== Link.this.index ++){
                this.data返す;
            }他{
                this.next.getNodeリターン(インデックス);
                }
        }
        
        / **
         *検索方法は、番号が存在するか否かを判断する
         * /
        パブリックブールcontainsNode(文字列データ){
            IF(data.equals(this.data)){
                ; trueに戻り
            } {他の
                IF(!this.next = NULL){
                    (データ)this.next.containsNodeを返す;
                }他{
                    falseに復帰;
                }
            }
            
        }
        / **
         *増加したノード
         * /
        //最初の呼び出し(リンク): = Link.rootこの
        // 2番目のコール(ノード):これはLink.root.nextを=
        公共ボイドにaddNode(ノードノード){
            IF(this.next == NULL){
                this.next =ノード。
            }他{
                this.next.addNode(ノード)。
            }
        }
        
        パブリック文字列のgetData(){
            戻りデータ。
        }
        
        公共ボイドのsetData(文字列データ){
            this.data =データ。
        }
    
        パブリック・ノードgetNextを(){
            次返します。
        }
        
        公共ボイドsetNext(次のノード){
            this.next =次回。
        }
    }
}
LinkeText类。

/ **
 *
 * /
パッケージlianbiaoDemo03;

publicクラスlinkText {

    パブリック静的無効メイン(文字列[] args){
        (=リンクリンクリンク新しい新規);
        link.add( "ひょうたん1。");
        link.add(「ひょうたん2 ");
        link.add("ひょうたん3。 ");
        link.add("ひょうたん4。 ");
        link.add("ひょうたん5「);
    //するSystem.out.println(link.size() );
    //のSystem.out.println(link.isEmpty());
    //のSystem.out.println(link.contains( "ひょうたん人形4"));
    //のSystem.out.println(link.get(1 ));
    // link.set(1、 "猿の王");
    // System.out.printlnは(link.get(1));
    // link.remove( "ひょうたん人形3");
    //システム。out.printlnを(link.get(2))。
        文字列[] S = link.toArray()。
        以下のために(INT i = 0; I <s.length; I ++){
            System.out.printlnは(S [I])。
        }
    }
}

おすすめ

転載: www.cnblogs.com/had1314/p/11183972.html