Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.85 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct Aluno{
  5.  
  6.     int exigencia;
  7.     int semestres;
  8.     struct Aluno *proximo;
  9. }TipoAluno;
  10.  
  11. typedef struct ListaAluno{
  12.  
  13.     TipoAluno *inicio;
  14.     TipoAluno *fim;
  15. }T_FilaAluno;
  16.  
  17. typedef struct Quarto{
  18.    
  19.     int padrao;
  20.     int disponibilidade;
  21.     struct Quarto *proximo;
  22. }TipoQuarto;
  23.  
  24. typedef struct ListaQuarto{
  25.  
  26.     TipoQuarto *inicio,*fim;
  27. }T_FilaQuarto;
  28.  
  29. void CriaFilaAlunos(T_FilaAluno *Fila){
  30.  
  31.     Fila->inicio = NULL;
  32.     Fila->fim = NULL;
  33. }
  34.  
  35. void CriaFilaQuartos(T_FilaQuarto *Fila){
  36.  
  37.     Fila->inicio = NULL;
  38.     Fila->fim = NULL;
  39. }
  40.  
  41. int SizeFilaAlunos(T_FilaAluno *Fila){
  42.     TipoAluno *auxiliar = Fila->inicio;
  43.     int size = 0;
  44.     while(auxiliar != NULL){
  45.         size++;
  46.         auxiliar = auxiliar->proximo;
  47.     }
  48.     return size;
  49. }
  50.  
  51. int SizeFilaQuartos(T_FilaQuarto *Fila){
  52.     TipoQuarto *auxiliar = Fila->inicio;
  53.     int size1 = 0;
  54.     while(auxiliar != NULL){
  55.         size++;
  56.         auxiliar = auxiliar->proximo;
  57.     }
  58.     return size1;
  59. }
  60.  
  61. void InsereAluno(T_FilaAluno *Fila,int exigencia){
  62.    
  63.     TipoAluno *NovoAluno = (TipoAluno*)malloc(sizeof(TipoAluno));
  64.     NovoAluno->exigencia = exigencia;
  65.     NovoAluno->proximo = NULL;
  66.    
  67.     if(Fila->inicio == NULL){
  68.         Fila->inicio = NovoAluno;
  69.         Fila->fim = NovoAluno;
  70.     }
  71.  
  72.     else{
  73.         Fila->fim->proximo = NovoAluno;
  74.         Fila->fim = NovoAluno;
  75.     }
  76. }
  77.  
  78. void InsereQuarto(T_FilaQuarto *Fila,int padrao){
  79.    
  80.     TipoQuarto *NovoQuarto = (TipoQuarto*)malloc(sizeof(TipoQuarto));
  81.     NovoQuarto->padrao = padrao;
  82.     NovoQuarto->proximo = NULL;
  83.    
  84.     if(Fila->inicio == NULL){
  85.         Fila->inicio = NovoQuarto;
  86.         Fila->fim = NovoQuarto;
  87.     }
  88.  
  89.     else{
  90.         Fila->fim->proximo = NovoQuarto;
  91.         Fila->fim = NovoQuarto;
  92.     }
  93. }
  94.  
  95. int RemoveAluno(T_FilaAluno *Fila){
  96.  
  97.     int exigencia;
  98.     TipoAluno *auxiliar;
  99.     auxiliar = Fila->inicio;
  100.     Fila->inicio = Fila->inicio->proximo;
  101.     exigencia = auxiliar->padrao;
  102.     free(auxiliar);
  103.     return exigencia;
  104.  
  105. }
  106.  
  107. int RemoveQuarto(T_FilaQuarto *Fila){
  108.  
  109.     int padrao;
  110.     TipoQuarto *auxiliar;
  111.     auxiliar = Fila->inicio
  112.     Fila->inicio = Fila->inicio->proximo;
  113.     padrao = auxiliar->padrao;
  114.     free(auxiliar);
  115.     return padrao;
  116. }
  117.  
  118. void AlocaQuarto(int SizeFAlunos, int SizeFQuartos, T_FilaAluno *FilaAluno, T_FilaQuarto *FilaQuarto,T_FilaAluno *FilaAlunoAlocado,T_FilaQuarto *FilaQuartoAlocado){
  119.    
  120.     TipoQuarto *QuartoAux;
  121.     TipoAluno *AlunoAux;
  122.     int exigencia,padrao;
  123.     QuartoAux = FilaQuarto->inicio;
  124.     AlunoAux = FilaAluno->inicio;
  125.     int i=0,j=0;
  126.  
  127.     while(i<SizeFAlunos){
  128.         while(j<SizeFQuartos){
  129.             if(FilaAluno->inicio->exigencia <= FilaQuarto->inicio->padrao){
  130.                 exigencia = RemoveAluno(&FilaAluno);
  131.                 InsereAluno(&FilaAlunoAlocado,exigencia);
  132.                 padrao = RemoveQuarto(&FilaQuarto);
  133.                 InsereQuarto(&FilaQuartoAlocado,padrao);
  134.                 break;
  135.             }
  136.             else{
  137.                 padrao = RemoveQuarto(&FilaQuarto);
  138.                 InsereQuarto(&FilaQuarto,padrao);
  139.             }
  140.             j++;
  141.         }
  142.         i++;
  143.     }
  144. }
  145.  
  146. int main(){
  147.    
  148.     return 0;  
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement