Advertisement
Diogo03

Lista encadeada

Feb 9th, 2023 (edited)
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.59 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct node{
  5.  
  6. int prioridade;
  7. struct node*next;
  8.  
  9. }Node;
  10. Node *front = NULL;
  11. Node *rear = NULL;
  12.  
  13. void incrementa_fila(int prioridade) {
  14.  
  15.     if(prioridade > 3 || prioridade < 1) {
  16.         printf("Valor da prioridade\n");
  17.         return;
  18.     }
  19.  
  20.     Node *temp = (Node *)malloc(sizeof(Node));
  21.     temp->prioridade = prioridade;
  22.     temp->next = NULL;
  23.  
  24.     if(front == NULL || prioridade < front->prioridade) {
  25.         temp->next = front;
  26.         front = temp;
  27.     }
  28.     else {
  29.          Node *p = front;
  30.          while (p->next != NULL && (p->next->prioridade < prioridade || (p->next->prioridade == prioridade))) {
  31.             p = p->next;
  32.          }
  33.          temp->next = p->next;
  34.          p->next = temp;
  35.     }
  36. }
  37.  
  38. void remove_da_fila() {
  39.  
  40.     if(front == NULL) {
  41.         printf("Fila vazia\n");
  42.         return;
  43.     }
  44.     Node *temp = front;
  45.     front = front -> next;
  46.     free(temp);
  47. }
  48.  
  49. void print() {
  50.  
  51.     if(front == NULL){
  52.         printf("Fila vazia\n");
  53.         return;
  54.     }
  55.    
  56.     Node *p = front;
  57.     int i = 1;
  58.     while (p != NULL) {
  59.         printf("Paciente: %d, Prioridade: %d\n", i, p->prioridade);
  60.         i++;
  61.         p = p->next;
  62.     }
  63. }
  64.  
  65. int main() {
  66.     int n;
  67.     printf("Digite o numero de pacientes: ");
  68.     scanf("%d", &n);
  69.     int i = 0;
  70.     for(i = 0; i < n; i++) {
  71.         int prioridade, ordem_de_chegada;
  72.         printf("Digite a prioridade do paciente %d: ", i + 1);
  73.         scanf("%d", &prioridade);
  74.         incrementa_fila(prioridade);
  75.     }
  76.  
  77.     print();
  78.     return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement