Maison >Java >javaDidacticiel >Comment faire fonctionner la table de séquence de la structure de données Java
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 comprennent les listes de séquences, les listes chaînées, les piles, les files d'attente, les chaînes... Un tableau 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.
Une table de séquence est une structure linéaire qui utilise une unité de stockage avec une adresse physique continue pour stocker des éléments de données en séquence. est utilisé. Complétez l'ajout, la suppression, la vérification et la modification des données sur le tableau
est en fait 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. "Créer une table de séquence"
Ajouter un élément à la position pos
Lors de l'insertion d'un élément dans la table de séquence, l'élément doit être stocké devant la position insérée,
Analyse du dessin :
Le code est le suivant :
public class MyArrayList { public int[] elem;//数组 public int usedSize;//数据的有效个数 public MyArrayList(){ this.elem = new int[10]; } }Résultats d'impression :
Déterminer si un certain élément est inclus
// 在 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; }Résultats d'impression :
Trouver la position correspondant à un élément
// 判定是否包含某个元素 public boolean contains(int toFind) { for (int i = 0; i < this.usedSize; i++) { if (this.elem[i] == toFind) { return true; } } return false; }
Imprimer résultats :
Obtenir l'élément en position pos
// 查找某个元素对应的位置 public int search(int toFind) { for (int i = 0; i <this.usedSize ; i++) { if(this.elem[i] == toFind){ return i; } } return -1; }
Résultat de l'impression :
Définissez la valeur de l'élément en position 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; }
Résultat de l'impression :
Supprimez l'élément que vous souhaitez supprimer
// 给 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; }
Résultat d'impression :
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!