Maison > Java > javaDidacticiel > Comment implémenter une structure de données de table séquentielle en utilisant Java ?

Comment implémenter une structure de données de table séquentielle en utilisant Java ?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-04-21 14:31:08
avant
1848 Les gens l'ont consulté

    Préface

    Une liste linéaire est une séquence finie de n éléments de données ayant les mêmes caractéristiques. Les tableaux linéaires sont une structure de données largement utilisée dans la pratique. Les tableaux linéaires courants sont : les listes séquentielles, les listes chaînées, les piles, les files d'attente, les chaînes... Une liste linéaire est logiquement une structure linéaire, c'est-à-dire une ligne droite continue. Cependant, la structure physique n'est pas nécessairement continue. Lorsque les tableaux linéaires sont physiquement stockés, ils le sont généralement sous forme de tableaux et de structures liées.

    Comment implémenter une structure de données de table séquentielle en utilisant Java ?

    1. Table de séquence

    1.1 Qu'est-ce qu'une table de séquence

    Une table de séquence est une structure linéaire qui utilise une unité de stockage avec des adresses physiques continues pour stocker des éléments de données en séquence. Généralement, le stockage en tableau est utilisé. Terminez l'ajout, la suppression, la vérification et la modification des données sur la baie.

    En fait, c'est un tableau. Alors pourquoi avez-vous besoin d’écrire une table de séquence ? Ne serait-il pas préférable d’utiliser simplement un tableau ? La différence est que son écriture dans une classe peut être orientée objet.

    Les tables de séquence peuvent généralement être divisées en :

    • Table de séquence statique : utiliser un stockage de tableau de longueur fixe

    • Table de séquence dynamique : utiliser un stockage de tableau ouvert dynamiquement

    La table de séquence statique convient pour déterminer la quantité doit être stocké Scénario de données.

    Le tableau de longueur fixe de la table de séquence statique fait que N est trop grand. Ouvrir trop d'espace est un gaspillage, et ouvrir trop peu d'espace n'est pas suffisant

    En revanche, la dynamique. La table de séquence est plus flexible et peut allouer dynamiquement la taille de l'espace en fonction des besoins.

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

    2.4 Ajouter des éléments à la position pos

    Insérer dans la table de séquence Lorsqu'un élément est inséré, l'élément doit être stocké devant la position

    Comment implémenter une structure de données de table séquentielle en utilisant Java ?

    //打印顺序表
    public void display(){
            for (int i = 0; i < this.usedSize; i++) {
                System.out.print(this.elem[i] + " ");
            }
            System.out.println();
        }
    Copier après la connexion

    2.5 Déterminer s'il contient un élément

    //获取顺序表长度
        public int size(){
            return this.usedSize;
       }
    Copier après la connexion

    2.6 Trouver la position correspondant à un élément

    //在 pos 位置新填元素
        public void add(int pos,int data){
            if(pos < 0 || pos >usedSize){
                System.out.println("pos 位置不合法!");
                return;
            }
            if(isfull()) {
                Arrays.copyOf(this.elem,2*this.elem.length);
            }
            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;
        }
    Copier après la connexion

    2.7 Obtenir l'élément en position pos

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

    2.8 Définir l'élément en position pos sur la valeur

    //查找某个元素的对应位置,找不到返回-1
        public int search(int toFind){
            for (int i = 0; i < this.usedSize; i++) {
                if(this.elem[i] == toFind){
                    return i;
                }
            }
            return -1;
        }
    Copier après la connexion

    2.9 Supprimer l'élément que vous souhaitez supprimer

    //获取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;
        }
    Copier après la connexion
    Comment implémenter une structure de données de table séquentielle en utilisant Java ?2.10 Effacer la liste de séquence

     //给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;
        }
    Copier après la connexion

    3 . MyArrayList.java

    //删除第一次出现的关键字key
        public void remove(int toRmove){
            if (isEmpty()){
                System.out.println("顺序表为空!");
                return;
            }
            int index = search(toRmove);
            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--;
            //this.elem[useSize] = null;如果数组当中是引用数据类型
        }
    Copier après la connexion

    4.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Derniers numéros
    Impossible d'installer Java
    Depuis 1970-01-01 08:00:00
    0
    0
    0
    Java peut-il être utilisé comme backend du Web ?
    Depuis 1970-01-01 08:00:00
    0
    0
    0
    Installer JAVA
    Depuis 1970-01-01 08:00:00
    0
    0
    0
    Aide : Données chiffrées JAVA Décryptage PHP
    Depuis 1970-01-01 08:00:00
    0
    0
    0
    Est-ce en langage Java ?
    Depuis 1970-01-01 08:00:00
    0
    0
    0
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal