I want to do sorting of a struct that is referenced inside another struct:
Detail: can be sorted using selection sort
typedef struct{
int tipo;
char dispositivo[50];
int prioridade;
}Perif;
typedef struct no{
Perif info;
struct no* prox;
}Aux_Perif;
Aux_Perif* criarLista(){
return NULL;
}
void imprimirLista(Aux_Perif** lista, int size){
Aux_Perif* aux = *lista;
while (aux != NULL){
std::cout << "DISPOSITIVO: ";
std::cout << aux->info.dispositivo << std::endl;
std::cout << "PRIORIDADE: ";
std::cout << aux->info.prioridade << std::endl;
aux = aux->prox;
}
}
void inserirFinal(Aux_Perif** perifericos, Perif barramento){
Aux_Perif* novo = (Aux_Perif*)new Aux_Perif;
novo->info = barramento;
Aux_Perif* aux = *perifericos;
Aux_Perif* anterior = NULL;
if (*perifericos == NULL){
*perifericos = novo;
}else{
while(aux != NULL){
anterior = aux;
aux = aux->prox;
}
anterior->prox = novo;
}
}
int main(){
int solic;
int cont = 0;
int aux = 0, prior = 0;
Aux_Perif* perifericos;
perifericos = criarLista();
std::cout << "Entre com o número de solicitações: " << std::endl;
std::cin >> solic;
std::cout << "Periféricos:\n1. Impressora\n2. Mouse\n3. Teclado\n4. Scanner\n5. Roteador\n6. Disco Rígido" << std::endl;
std::cout << "De acordo com os números e Periféricos acima, insira a ordem de entrada das solicitações e sua prioridade" << std::endl;
while (cont < solic){
Perif ordem;
std::cin >> aux >> prior;
switch (aux){
case 1:
//ordem.dispositivo = 'Impressora';
strcpy(ordem.dispositivo, "Impressora");
break;
case 2:
strcpy(ordem.dispositivo , "Mouse") ;
break;
case 3:
strcpy(ordem.dispositivo , "Teclado");
break;
case 4:
strcpy(ordem.dispositivo , "Scanner");
break;
case 5:
strcpy(ordem.dispositivo , "Roteador");
break;
case 6:
strcpy(ordem.dispositivo , "Disco Rígido");
break;
default:
std::cout << "Error" << std::endl;
break;
}
ordem.tipo = aux;
ordem.prioridade = prior;
cont++;
inserirFinal(&perifericos, ordem);
//delete[] ordem;
}
std::cout << "Daisy Chaining utilizando método de ordem a chegada ou entrada." << std::endl;
imprimirLista(&perifericos, solic);
std::cout << "Método por Prioridade: " << std::endl;
imprimirLista(&perifericos, solic);
return 0;
}
In this case, I want to sort by Aux_perif -> info -> prioridade
. Help, guys!