Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
queremos hablartabla de secuenciaPrimero tenemos que hablar de tablas lineales, porque las tablas secuenciales son un tipo de tablas lineales.
Como sugiere el nombre, una tabla lineal es una tabla que organiza datos como líneas.
Se puede entender pensando en hacer cola en la realidad.
Características de las mesas lineales:
La tabla de secuencia usa un párrafo.Las direcciones físicas son consecutivas.Las unidades de almacenamiento son como personas haciendo fila una al lado de la otra.
Una estructura lineal que almacena elementos de datos en secuencia, generalmente usandoformaciónalmacenamiento.
Complete la adición, eliminación, verificación y modificación de datos en la matriz.
Implemente una tabla de secuencia usted mismo (almacenamiento de datos de tipo int), use la tabla de secuencia como una clase, implementamos algunas interfaces, es decir, algunasmétodo miembroRealizar la alta, supresión, comprobación y modificación de datos.
public class SeqList {
private int[] elem;
private int usedSize;
// 默认构造方法
SeqList(){ }
// 将顺序表的底层容量设置为initcapacity
SeqList(int initcapacity){ }
// 新增元素,默认在数组最后新增
public void add(int data) { }
// 在 pos 位置新增元素
public void add(int pos, int data) { }
// 判定是否包含某个元素
public boolean contains(int toFind) { return true; }
// 查找某个元素对应的位置
public int indexOf(int toFind) { return -1; }
// 获取 pos 位置的元素
public int get(int pos) { return -1; }
// 给 pos 位置的元素设为 value
public void set(int pos, int value) { }
//删除第一次出现的关键字key
public void remove(int toRemove) { }
// 获取顺序表长度
public int size() { return 0; }
// 清空顺序表
public void clear() { }
}
De forma predeterminada, inicialmente abrimos 10 espacios de datos.
private static final int DEFAULT_SIZE = 10;
public SeqList() {
this.elem= new int[DEFAULT_SIZE];
}
Pase la longitud de la matriz y use la longitud de la matriz para abrir espacio.
private static final int DEFAULT_SIZE = 10;
public SeqList(int initcapacity) {
this.elem= new int[initcapacity];
}
Los nuevos elementos se agregan al final de la matriz de forma predeterminada.
Puntos a considerar:
public void add(int data) {
if(isFull()){
elem = Arrays.copyOf(elem,elem.length * 2);
}
elem[usedSize++] = data;
}
/**
* 判断当前的顺序表是不是满的!
*
* @return true:满 false代表空
*/
private boolean isFull() {
return usedSize == elem.length;
}
Insertar elemento en el subíndice pos.
Precauciones:
private boolean checkPosInAdd(int pos) throws PosIllegalException{
if(pos < 0 || pos > usedSize){
throw new PosIllegalException("位置不合法");
}
return true;
}
// 在 pos 位置新增元素
public void add(int pos, int data) {
try{
if(checkPosInAdd(pos)){
if(isFull()){
elem = Arrays.copyOf(elem,elem.length * 2);
}
for (int i = usedSize; i > pos ; i--) {
elem[i] = elem[i-1];
}
elem[pos] = data;
usedSize++;
}
}catch(PosIllegalException e){
e.printStackTrace();
}
}
Vea si los datos dados están incluidos en la tabla de secuencia.
Simplemente recorralo directamente, devuelva verdadero si lo encuentra y devuelva falso si no lo encuentra.
public boolean contains(int toFind) {
for (int i = 0; i < usedSize; i++) {
if(elem[i] == toFind){
return true;
}
}
return false;
}
Mire el índice de los datos dados en esta tabla de secuencia.
Simplemente recorra directamente y busque el subíndice de retorno sin devolver -1.
public int indexOf(int toFind) {
for (int i = 0; i < usedSize; i++) {
if(elem[i] == toFind){
return i;
}
}
return -1;
}
Salida del elemento en la posición pos.
Precauciones:
public int get(int pos) {
try{
if(checkPosInAdd(pos)){
return elem[pos];
}
}catch(PosIllegalException e){
e.printStackTrace();
}
return 0;
}
Modifique el elemento de posición pos.
Precauciones:
public void set(int pos, int value) {
try{
if(checkPosInAdd(pos)){
elem[pos] = value;
}
}catch(PosIllegalException e){
e.printStackTrace();
}
}
Elimine la primera aparición de la clave.
Precauciones:
public void remove(int key) {
for (int i = 0; i < usedSize; i++) {
if(elem[i] == key){
for (int j = i; j < usedSize - 1; j++) {
elem[j] = elem[j + 1];
}
usedSize--;
}
}
}
Obtener la longitud de la tabla de secuencia aquí se refiere a la cantidad de datos útiles, es decir, usedSize.
public int size() {
return usedSize;
}
Establezca el contenido de la tabla de secuencia en vacío.
Precauciones:
public void clear() {
for (int i = 0; i < usedSize; i++) {
elem[i] = 0;
}
usedSize = 0;
}
La clase ArrayList se proporciona en Java para representar una lista secuencial.
Descripción de la interfaz:
Java proporciona 3 métodos de construcción como se muestra en la tabla:
método | Introducción al uso del método. |
---|---|
Lista de arreglo() | Construcción sin argumentos |
ArrayList(Colección<? extends E> C) | Construya ArrayList usando otras colecciones |
ArrayList(int CapacidadInicial) | Especificar la capacidad inicial de la tabla de secuencia. |
Los métodos comunes proporcionados son similares a los que implementamos anteriormente.
Las ventajas de las tablas de secuencia son las siguientes:
Los enlaces a los ejercicios se encuentran a continuación:
Triángulo de Yang Hui