Colección de citas famosas - Slogan de motivación - ¿Qué es un índice en lenguaje C?

¿Qué es un índice en lenguaje C?

1. El tipo de tabla de índice se puede definir de la siguiente manera:

Ítem de índice estructural

{

Índice IndexKeyType;

// IndexKeyType es un tipo de valor de índice predefinido.

int start

//La posición del subíndice del primer elemento en la subtabla.

int length;

//El campo de longitud de la subtabla

};

2. valor K1, busque la entrada de índice con un valor de índice igual a K1 en la tabla de índice, determine la posición inicial y la longitud de la subtabla correspondiente en la tabla principal y luego busque en la subtabla correspondiente según la palabra clave dada K2.

3. La clave es igual al elemento de K2.

Supongamos que la matriz A es una tabla principal de tipo lista principal y la matriz B es una tabla de índice construida sobre la tabla principal A de tipo lista de índices. m es la longitud real de la tabla de índice B, es decir, el número de entradas de índice contenidas, dados K1 y K2 respectivamente.

Después de buscar el valor del índice y la palabra clave, suponiendo que cada subtabla se almacena en orden, el algoritmo de búsqueda del índice es:

int Indsch(mainlist A, indexlist B, int m, IndexKeyType K1, KeyType K2)

{//Utilice la tabla principal A y la tabla de índice B de tamaño m para encontrar el registro con el valor de índice K1 y la clave K2.

//Devuelve la posición del subíndice del registro en la tabla principal. Si la búsqueda falla, se devuelve -1.

int i,j;

for(I = 0;i<m;i++)

if (K1 == B[i].index)

Break;

If (i == m)

return-1; //La búsqueda falló.

j = B[i]. inicio;

mientras(j & lt; B[i]. inicio + B[i]. longitud)

{

si (K2 == A [j].Key)

Romper;

Otro

j++;

}

if(j <B[i].start + B[i].length)

Regresar j; //Buscar exitosamente.

Otros

return-1; //La búsqueda falló.

}