Código fuente de la plataforma de publicación de información
{
int j, p;
for(j = 0; j <radix_n;j++)
{
f[j]= e[j]= 0;
}
para (p= sl[0]). Siguiente;p;p=sl[p]. Siguiente)
{
j=sl[p]. claves[I]% 48;
Si (!f[j])
f[j]= p;
Otro
sl[e[j]]. siguiente = p;
e[j]= p;
}
}
void recolectar(slnode *sl, int i , arrtype_n f, arrtype_n e)
{
int j, t;
for(j = 0;!f[j];j++);
sl[0]. siguiente = f[j];
t = e[j];
mientras(j & lt;radix_n-1)
{
for(j = j+1; j & lt base n-1 & amp; & amp! f[j]; j++);
if(f[j])
{
sl[t]. siguiente = f[j];
t = e[j];
}
}
sl[t]. siguiente = 0;
}
void distribuir_c(slnode *sl, int i, arrtype_c f, arrtype_c e)
{
int j, p;
for(j = 0; j & lradix _ c; j++)
{
f[j]= e[j] = 0;
}
para(p=sl[0]). Siguiente;p;p=sl[p]. Siguiente)
{
j=sl[p]. claves[I]% 65;
Si (!f[j])
f[j]= p;
Otro
sl[e[j]]. siguiente = p;
e[j]= p
}
}
void Collect_c(slnode *sl, int i , arrtype_c f, arrtype_c e)
{
int j, t;
for(j = 0;!f[j];j++);
sl[0]. siguiente = f[j];
t = e[j];
mientras(j & lt;radix_c-1)
{
for(j = j+1; j & lt base_ c-1 & amp; & amp! f[j]; j++
if(f[j])
);{
sl[t]. siguiente = f[j];
t = e[j];
}
}
sl[t].
siguiente = 0;
}
clasificación de raíz nula (lista sl y L)// cadena
{
int I ;
arrtype_n fn,en;
arrtype_c fc,EC;
for(I = 0;i<length;i++)
l .sl[yo]. siguiente = I+1;
Longitud. siguiente = 0;
for(I = l . keynum-1;i>=2;i-)
{
distribuir(l.sl , I , fn, en);
collect(l.sl, I, fn, en
}
for(I = 1; I & gt); =0;i-)
{
distribuir_c(l.sl, I, fc, EC);
collect_c(l.sl, I, fc); , EC);
}
}
void organizar(sl list & amp; L)//Reorganizar
{ p>
int p, q, I;
temperatura del nodo
p=l.sl[0]. siguiente;
for(I = 1; i & lt longitud; i++)
{
mientras(p & lt; i)
p=l.sl[p]. Siguiente;
q=l.sl[p]. Siguiente;
if (p!=i)
{
temp = l . [p]= l . sl[I];
l sl[I]=
l.sl[i]. siguiente = p;
}
p = q;
}
}
int binsearch(sllist l, tipo de clave clave[])
{
int bajo, alto, medio
bajo = 1
alto = l; .length;
mientras(bajo & lt;=alto)
{
medio=(bajo+alto)/2;
if(strcmp(key,l.sl[mid]).keys)==0)
Regresar a mitad
else if(strcmp(key,l.sl[mid] ).
clave)<0)
Alto=medio1;
Otro
Bajo= medio+1;
}
Devuelve 0;
}
void seqsearch(sllist l, keytype key[], int i)
{
int j , k, m = 0;
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n ");
Printf("*Número de vuelo, estación de origen, estación terminal, segmento de vuelo, hora de salida, hora de llegada, tipo de avión tarifa* \ n ");
for(j = 1; j & lt=l . length; j++)
{
Interruptor (1)
{
Caso 2: k=strcmp(key, l . sl[j]. otros . start
<); p>Caso 3: k=strcmp(key, l . sl[j]. otros . endCaso 4: k=strcmp(key, l . sl[j ]. otros); tiempo 1); descanso
Caso 5: k=strcmp(key, l . sl[j]. otros . tiempo 2); p>Si (k==0)
{
m = 1;
printf(" * %-8s %-7s % -6s %- 11s %-9s %-7s %-5s % 4d * \n ",l.sl[j].keys,l.sl[j].others.start,l.sl[j].others. end, l. sl[j].others.sche, l.sl[j].others.time1, l.sl[j].others.time2, l.sl[j].others.model, l.sl[ j]. . precio);
}
}
If (m==0)
Printf("*Sin información de vuelo, mayo. ser un error de entrada *\n ");
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n ");
}
Icono de búsqueda no válido ( lista l)
{
tipo de clave clave[clave len];
int i=1,k;
mientras (I> ;=1. &i<=5)
{ printf(" \ n * * * * * * * * * * * * * * * * * * * * * \ n ");
Printf(" *Sistema de consulta de información de vuelo* \n ");
printf(" * * * * * * * * * * * * * * * * * * * * \n ");
Printf(" * 1. Número de vuelo * \ n ");
Printf(" * 2. Estación de origen * \ n "); " * 3. terminal * \ n ");
Printf(" * 4.
Hora de salida *\n");
Printf(" * 5. Hora de llegada *\n ");
Printf(" * 0. Salir del sistema *\n ");
printf(" * * * * * * * * * * * * * * * * * \ n ");
Printf("Por favor seleccione (0-5) : ");
scanf("%d ", & ampI);
printf(" \ n ");
Interruptor (1) p>
{case 1:printf("Ingrese el número de vuelo a consultar (las letras deben estar en mayúsculas):");
scanf("%s ", clave); p>
k=binsearch(l,key);
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");
Si (k==0)
Printf("*No hay información sobre este vuelo, ¡puede ser un error tipográfico!* \ n ");
Otro
{
Printf("* Número de vuelo, hora de salida, hora de llegada, tipo de avión, tarifa * \ n "
printf(" * %-8s %-7s %-6s %-11s %-); 9s %-7s %- 5s % 4d * \n ", l.sl[k].
claves, l.sl[k].others.start, l.sl[k].others.end, l.sl[k].others.sche, l.sl[k].others.time1, l.sl[ k].otros.time2, l.sl[k].otros.modelo, l.sl[k].otros.precio);
}
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");
Pausa;
Caso 2: printf ("Ingrese el nombre de la estación de origen del vuelo a consultar: ");
scanf("%s ", clave);
seqsearch(l, clave, I
Pausa
Caso 3: printf(" Ingrese el nombre de origen del vuelo de consulta requerido: ");
scanf("%s ", key);
seqsearch(l, key, I);
Pausa;
Caso 4: printf("Ingrese el nombre de la estación de salida del vuelo a consultar:");
scanf("%s ", clave); p>
seqsearch(l,key,I);
Break;
Caso 5: printf("Ingrese el nombre de la estación de origen del vuelo a consultar:") ;
scanf("%s ",key);
seqsearch(l,key,I);
Romper;
Caso 0: printf ("\ n \ n \ nAdiós n \ n "
}
}
}
void); datos de entrada (sl list & l)
{
int I = ++ l longitud;
char yn = ' y
<. p> while(yn=='y'||yn=='Y '){
Printf("Número de vuelo, hora de salida, hora de llegada, tipo de avión y tarifa \n ");
scanf(" % s % s % s % s % s % s % s % s % d ", l.sl[i].keys, l.sl[i] .otros .inicio, l.sl[i].otros.fin, l.sl[i].otros.sche, l.sl[i].otros.tiempo1, l.sl[i].otros.tiempo2, l .sl [i].others.model,&l.sl[I].others.price);
++ I;getchar();
radix sort(l);
Arrange(l);
Printf("¿Continuar escribiendo? y/n: ");
scanf("%c ", & ampyn);
}
l . longitud = I-1; p>
p>
}
void main()
{
sl lista l;
l . keynum = 6;
l .length = 0;
Datos de entrada (l);
searchcon(l);