Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct Aluno{
- int exigencia;
- int semestres;
- struct Aluno *proximo;
- }TipoAluno;
- typedef struct ListaAluno{
- TipoAluno *inicio;
- TipoAluno *fim;
- }T_FilaAluno;
- typedef struct Quarto{
- int padrao;
- int disponibilidade;
- struct Quarto *proximo;
- }TipoQuarto;
- typedef struct ListaQuarto{
- TipoQuarto *inicio,*fim;
- }T_FilaQuarto;
- void CriaFilaAlunos(T_FilaAluno *Fila){
- Fila->inicio = NULL;
- Fila->fim = NULL;
- }
- void CriaFilaQuartos(T_FilaQuarto *Fila){
- Fila->inicio = NULL;
- Fila->fim = NULL;
- }
- int SizeFilaAlunos(T_FilaAluno *Fila){
- TipoAluno *auxiliar = Fila->inicio;
- int size = 0;
- while(auxiliar != NULL){
- size++;
- auxiliar = auxiliar->proximo;
- }
- return size;
- }
- int SizeFilaQuartos(T_FilaQuarto *Fila){
- TipoQuarto *auxiliar = Fila->inicio;
- int size1 = 0;
- while(auxiliar != NULL){
- size++;
- auxiliar = auxiliar->proximo;
- }
- return size1;
- }
- void InsereAluno(T_FilaAluno *Fila,int exigencia){
- TipoAluno *NovoAluno = (TipoAluno*)malloc(sizeof(TipoAluno));
- NovoAluno->exigencia = exigencia;
- NovoAluno->proximo = NULL;
- if(Fila->inicio == NULL){
- Fila->inicio = NovoAluno;
- Fila->fim = NovoAluno;
- }
- else{
- Fila->fim->proximo = NovoAluno;
- Fila->fim = NovoAluno;
- }
- }
- void InsereQuarto(T_FilaQuarto *Fila,int padrao){
- TipoQuarto *NovoQuarto = (TipoQuarto*)malloc(sizeof(TipoQuarto));
- NovoQuarto->padrao = padrao;
- NovoQuarto->proximo = NULL;
- if(Fila->inicio == NULL){
- Fila->inicio = NovoQuarto;
- Fila->fim = NovoQuarto;
- }
- else{
- Fila->fim->proximo = NovoQuarto;
- Fila->fim = NovoQuarto;
- }
- }
- int RemoveAluno(T_FilaAluno *Fila){
- int exigencia;
- TipoAluno *auxiliar;
- auxiliar = Fila->inicio;
- Fila->inicio = Fila->inicio->proximo;
- exigencia = auxiliar->padrao;
- free(auxiliar);
- return exigencia;
- }
- int RemoveQuarto(T_FilaQuarto *Fila){
- int padrao;
- TipoQuarto *auxiliar;
- auxiliar = Fila->inicio
- Fila->inicio = Fila->inicio->proximo;
- padrao = auxiliar->padrao;
- free(auxiliar);
- return padrao;
- }
- void AlocaQuarto(int SizeFAlunos, int SizeFQuartos, T_FilaAluno *FilaAluno, T_FilaQuarto *FilaQuarto,T_FilaAluno *FilaAlunoAlocado,T_FilaQuarto *FilaQuartoAlocado){
- TipoQuarto *QuartoAux;
- TipoAluno *AlunoAux;
- int exigencia,padrao;
- QuartoAux = FilaQuarto->inicio;
- AlunoAux = FilaAluno->inicio;
- int i=0,j=0;
- while(i<SizeFAlunos){
- while(j<SizeFQuartos){
- if(FilaAluno->inicio->exigencia <= FilaQuarto->inicio->padrao){
- exigencia = RemoveAluno(&FilaAluno);
- InsereAluno(&FilaAlunoAlocado,exigencia);
- padrao = RemoveQuarto(&FilaQuarto);
- InsereQuarto(&FilaQuartoAlocado,padrao);
- break;
- }
- else{
- padrao = RemoveQuarto(&FilaQuarto);
- InsereQuarto(&FilaQuarto,padrao);
- }
- j++;
- }
- i++;
- }
- }
- int main(){
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement