Jhgf
#include <stdlib.h>
//Estrutura Heterogênea
struct no { int cont; struct no *ant; struct no *prox;
};
//Declaração de Variaveis Globais
struct no *inicio, *fim, *aux, *aux1, *aux2; int n;
// Função que insere os elementos na ordem crescente
void insere_ordenado () { aux = (struct no*)malloc(sizeof(struct no)); printf("Entre com um valor:"); scanf("%d", &aux->cont); if (inicio==NULL) { inicio = aux; inicio->prox = NULL; inicio->ant = NULL; fim = inicio;
}else{
if (inicio->cont > aux->cont) { aux->prox = inicio; inicio->ant = aux; inicio=aux; aux->ant = NULL;
} else { if (fim->cont < aux->cont) { fim->prox = aux; aux->prox = NULL; fim = aux;
} else { aux1 = inicio; while (aux->cont>aux1->cont) { aux1=aux1->prox; } aux1 = aux1->ant; aux->prox = aux1->prox; aux->ant=aux1; aux1->prox=aux;
}
}
}
}
//Ordenação de Joao Manoel
void JoaoManoel () { struct no *maior, *aux1, *aux2; int valor;
aux2=fim; while (aux2 != inicio) { aux1=inicio; maior=aux2; while(aux1!=aux2) { if (aux1->cont > maior->cont) maior = aux1; aux1=aux1->prox; } valor=aux2->cont; aux2->cont=maior->cont; maior->cont=valor; aux2=aux2->ant;
}
}
//Função que insere um elemento no fim da lista
void insere () { aux = (struct no*)malloc(sizeof(struct no)); printf("Entre com um valor:"); scanf("%d", &aux->cont); if (inicio==NULL) { inicio = aux; inicio->prox = NULL; inicio->ant = NULL; fim = inicio;
}else{
fim->prox = aux; aux->prox = NULL; aux->ant = fim; fim = aux;
}
}
// Função que lista na tela
void ordena () { aux1=inicio; while (aux1) { printf("%d\n",aux1->cont); aux1 = aux1->prox;
}
}
// Função do Menu
void menu () {
// do { printf("Escolha 1 Opcao:\n 0 - Sair \n 1 - Inserir elemento \n 2 - Ordenar\n"); scanf("%d", &n);
// }while (); switch (n){ case 1: insere(); break; case 2:
JoaoManoel (); break; case 3: ordena(); break;
}
}