La estructura de datos 408 Notas PubMed (B): una secuencia lineal de tabla de memoria

Las notas de papel sólo cuando la revisión, si los errores y deficiencias también por favor, corríjanme.

  1. Mesa lineal: es una secuencia finita de elementos de datos que tienen el mismo tipo de elementos de n (n≥0) de datos. Si n = 0 está vacía. [Nota: ① el mismo tipo de datos, que es tan grande el espacio de almacenamiento de datos ocupada por los elementos. ② era rango 1 a partir del índice de matriz empieza desde 0. ]

  2. Mesa lineal es una estructura lógica. (Entiendo que es uno a uno entre elementos lineales y elementos de la misma como la cola de la cafetería para comprar comida.)

  3. tablas de almacenamiento lineales: una cadena de almacenamiento y almacenados secuencialmente.
    3.1 Mesa lineal almacenada en el orden - la tabla de orden. (Pueblo crudo con tablas almacenadas para manera secuencial lineal, es decir, de modo que también elementos lógicamente adyacentes físicamente adyacentes.)
    De dirección 3.2 Puesto que la secuencia se almacena y el mismo tipo de elemento de datos, el elemento se puede calcular. (Dirección de inicio es conjunto Loc (L), la dirección del n-ésimo elemento es :. [Loc (L) + sizeof (ElemType) * n] donde [sizeof (ElemType) se utiliza para calcular el tamaño de un tipo de elemento de datos , elemType tipos de elementos de datos, tales como int.]
    para lograr 3,3 tabla de secuencia incluye la asignación estática y la asignación dinámica.
    3.3.1 asignación estática es "arrays" estáticas de elementos de almacenamiento de datos.
    ① tabla de secuencia definida
    En este momento, la memoria se abre en un espacio de almacenamiento contiguo, el formato de tipo de datos, esto sólo se define matriz puede definir su propia, como int.
    caso abierto en la memoria es un espacio contiguo de almacenamiento, el formato de tipo de datos, esto sólo se define matriz puede definir su propio, tal como un int.
    ② tabla de secuencia de inicialización
    Aquí Insertar imagen Descripción
    Nota: aquí L.data [i] = 0 se establece un valor inicial, si no se establece los valores iniciales es probable que vuelvan los datos impares (debido a que el sistema puede tener datos sucios) pero este paso puede ser omitido, de modo que a medida que la longitud igual a 0, es imposible devolver el último valor.
    desventajas ③ estáticamente asignados: si memoria está llena de morir, el orden de la longitud de la tabla desde el inicio de la definición no se puede cambiar.
    para hacer frente a esta debilidad, introduciendo de este modo la asignación dinámica y diversas definiciones de la siguiente manera :.
    ① definido Aquí Insertar imagen Descripción
    ② inicialización
    Aquí Insertar imagen Descripción
    ③ aumento Antes de que un elemento necesario para aumentar la longitud
    Aquí Insertar imagen Descripción
    NOTA: Este es un re-aplicar un espacio continuo, en lugar de seguir para abrir un espacio justo detrás.
    Funcionamiento básico tabla de secuencias ④ - inserto

    Aquí Insertar imagen Descripción
    Nota: insertar un elemento de la tabla de secuencia, el elemento necesita para moverlo posición hacia atrás y la siguiente, hasta la posición de protones elemento. Donde i valores requeridos válido: 1≤i≤length + 1, i debe determinar primero la legalidad, para realizar la operación de inserción.
    Complejidad de tiempo: el mejor caso (epítopo inserto) a O (1); peor de los casos (inserción de cabecera) a O (n); un caso O media (n) en cada posición de [una probabilidad de 1 / ( n + 1), de modo que (1 + 2 + ... + n ) * [1 / (n + 1)] = n / 2 ]
    funcionamiento básico ⑤ tabla de secuencia - Eliminar Aquí Insertar imagen Descripción
    Nota: la misma inserción requiere primero determinar si i legítimo. E primero asignado a los elementos, el valor de retorno a borrar con e. Entonces ciclo de utilización i asignar el valor de cada elemento de volver a la anterior, se dio cuenta de que la operación de eliminación. [Creo que puede ser entendido como la tabla de secuencia espacial es fijo, pero el elemento está fluyendo, no puedo cambiar el espacio, pero se puede lograr mediante la inserción y eliminación de asignación]
    complejidad de tiempo: el mejor caso (fin de borrar de la tabla, sin mover) O (1); peor cabecera caso (borrar) O (n); un caso promedio de O (n) [método de cálculo] inserto con
    el básico tabla de secuencia de operación ⑥ - Buscar y Buscar por valores bit a bit

    Aquí Insertar imagen Descripción
    Para encontrar este bit, la complejidad del tiempo es O (1), lo que refleja las características de la forma lineal de acceso aleatorio. Puesto que la forma lineal de elementos de datos individuales almacenados en la memoria consecutivas, y el mismo tipo de datos, es posible encontrar inmediatamente un elemento de ubicación de acuerdo con la dirección de inicio y el tamaño del elemento de datos.
    Aquí Insertar imagen Descripción
    Este es el aspecto de valor. complejidad de tiempo: el mejor de los casos (en la cabecera): O (1); peor de los casos (en el extremo de la tabla): O (n), un caso medio donde: O (n).
    ⑦ tabla de secuencia de funcionamiento básico - cambiar el valor del elemento
    de la operación de búsqueda basado en la operación, el cambio se puede encontrar, que no describe en detalle.

  4. Resumen de
    la ejecución tabla de secuencia: ① asignación estática (utilizando estática "array" de lograr, una vez para determinar el tamaño no puede cambiarse). ② asignación dinámica (utilizando la "matriz dinámica" de lograr, cuando la tabla de secuencia es completa cuando la capacidad máxima de la función malloc extiende dinámicamente la tabla de secuencia, pero la necesidad de copiar los elementos de matriz en un nuevo espacio, en lugar de directamente añade al final, y necesidad función libre para liberar el espacio original).
    Características de la tabla de secuencia: ① el acceso aleatorio, es decir, un i-ésimo elemento se puede encontrar en O (1) tiempo. ② densidad de almacenamiento alta, cada nodo sólo almacena elementos de datos (la más necesidad lista para almacenar un puntero). ③ expansión conveniente pero fácil (expansión no se puede asignar de forma estática, asignada dinámicamente complejidad del tiempo extendido alta longitud). ④ inserción, operación de eliminación no es fácil.
    Secuencia estructura de almacenamiento de tabla: es también elementos físicamente adyacentes son lógicamente adyacente.

Liberadas dos artículos originales · ganado elogios 3 · vistas 63

Supongo que te gusta

Origin blog.csdn.net/qq_38652677/article/details/105330487
Recomendado
Clasificación