ホームページ >Java >&#&チュートリアル >Javaのデータ構造のシーケンステーブルの操作方法

Javaのデータ構造のシーケンステーブルの操作方法

王林
王林転載
2023-05-12 20:22:04851ブラウズ

    序文

    線形リストは、同じ特性を持つ n データ要素の有限シーケンスです。線形テーブルは、実際に広く使用されているデータ構造です。一般的な線形テーブルには、シーケンシャル リスト、リンク リスト、スタック、キュー、文字列などが含まれます。線形リストは論理的には線形構造、つまり連続した直線です。ただし、物理的な構造は必ずしも連続しているわけではなく、線形テーブルを物理的に保存する場合、通常は配列や連結構造の形で保存されます。

    1. シーケンス テーブルとは

    シーケンス テーブルの概念と構造

    シーケンス テーブルは、連続した物理アドレスを持つ記憶装置を使用する線形構造です。データ要素を順番に格納する場合、通常、この場合には配列ストレージが使用されます。配列上のデータの追加、削除、確認、変更を完了します。

    は実際には配列です。では、なぜシーケンス テーブルを作成する必要があるのでしょうか? 単純に配列を使用したほうが良いのではないでしょうか?違いは、クラス内で記述するとオブジェクト指向になる可能性があることです。

    シーケンス テーブルの作成

    Javaのデータ構造のシーケンステーブルの操作方法

    public class MyArrayList {
       public int[] elem;//数组
       public int usedSize;//数据的有效个数
     
       public MyArrayList(){
           this.elem = new int[10];
       }
    }

    シーケンス テーブルの印刷

    Javaのデータ構造のシーケンステーブルの操作方法

    ## 結果の印刷:

    Javaのデータ構造のシーケンステーブルの操作方法

    表示は usedsize に基づいて出力されるため、usedsize には値が割り当てられていないため、何も出力されません。

    シーケンステーブルの長さを取得します

    Javaのデータ構造のシーケンステーブルの操作方法

    pos位置に新しい要素を追加します

    要素を挿入するときに挿入される位置シーケンス テーブル 要素は前に格納する必要があります。

    描画分析:

    Javaのデータ構造のシーケンステーブルの操作方法

    コードは次のとおりです:

    // 在 pos 位置新增元素
        public void add(int pos, int data) {
           if(pos < 0 || pos > usedSize){
               System.out.println("pos位置不合法");
               return;
           }
           if(isFull()){
               this.elem = Arrays.copyOf(this.elem,this.elem.length*2);
           }
            for (int i = this.usedSize-1; i >=pos ; i--) {
                this.elem[i+1] = this.elem[i];
            }
            this.elem[pos] = data;
            
            this.usedSize++;
            
        }
     
        public boolean isFull(){
           return this.usedSize == this.elem.length;
        }

    結果の印刷:

    Javaのデータ構造のシーケンステーブルの操作方法

    特定の要素が含まれているかどうかを判断する

    // 判定是否包含某个元素
        public boolean contains(int toFind) {
            for (int i = 0; i < this.usedSize; i++) {
                if (this.elem[i] == toFind) {
                    return true;
                }
            }
            return false;
        }

    結果を出力:

    Javaのデータ構造のシーケンステーブルの操作方法

    要素に対応する位置

     // 查找某个元素对应的位置
        public int search(int toFind) {
            for (int i = 0; i <this.usedSize ; i++) {
                if(this.elem[i] == toFind){
                    return i;
                }
            }
           return -1; 
       }

    印刷結果:

    Javaのデータ構造のシーケンステーブルの操作方法##pos 位置の要素を取得##

     // 获取 pos 位置的元素
        public int getPos(int pos) {
           if(pos < 0 || pos > this.usedSize){
               System.out.println("pos位置不合法");
               return -1;//所以,这里说明一下,业务上的处理,这里不考虑
           }
           if (isEmpty()){
               System.out.println("顺序表为空");
               return -1;
           }
           return this.elem[pos];
     
        }
        public boolean isEmpty(){//判断为不为空的情况下
           return this.usedSize == 0;
        }

    印刷結果:

    pos 位置の要素を value に設定しますJavaのデータ構造のシーケンステーブルの操作方法

       // 给 pos 位置的元素设为 value
        public void setPos(int pos, int value) {
            if (pos < 0 || pos > this.usedSize) {
                System.out.println("pos位置不合法");
                return ;
            }
            if (isEmpty()) {
                System.out.println("顺序表为空");
                return;
            }
             this.elem[pos] = value;
        }
        public boolean isEmpty() {//判断为不为空的情况下
            return this.usedSize == 0;
        }

    結果を出力します:

    ##削除する要素を削除します

    //删除第一次出现的关键字key
    public void remove(int toRemove) {
       if(isEmpty()){
           System.out.println("顺序表为空");
           return;
       }
       int index = search(toRemove);//查找要删除元素对应的位置
       if(index == -1){
           System.out.println("没有你要找到数字");
           return;
       }
     
        for (int i = index; i <this.usedSize-1 ; i++) {
            this.elem[i] = this.elem[i+1];
        }
        this.usedSize--;
     
    }
    Javaのデータ構造のシーケンステーブルの操作方法 印刷結果:

    以上がJavaのデータ構造のシーケンステーブルの操作方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。