Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct node{
- int prioridade;
- struct node*next;
- }Node;
- Node *front = NULL;
- Node *rear = NULL;
- void incrementa_fila(int prioridade) {
- if(prioridade > 3 || prioridade < 1) {
- printf("Valor da prioridade\n");
- return;
- }
- Node *temp = (Node *)malloc(sizeof(Node));
- temp->prioridade = prioridade;
- temp->next = NULL;
- if(front == NULL || prioridade < front->prioridade) {
- temp->next = front;
- front = temp;
- }
- else {
- Node *p = front;
- while (p->next != NULL && (p->next->prioridade < prioridade || (p->next->prioridade == prioridade))) {
- p = p->next;
- }
- temp->next = p->next;
- p->next = temp;
- }
- }
- void remove_da_fila() {
- if(front == NULL) {
- printf("Fila vazia\n");
- return;
- }
- Node *temp = front;
- front = front -> next;
- free(temp);
- }
- void print() {
- if(front == NULL){
- printf("Fila vazia\n");
- return;
- }
- Node *p = front;
- int i = 1;
- while (p != NULL) {
- printf("Paciente: %d, Prioridade: %d\n", i, p->prioridade);
- i++;
- p = p->next;
- }
- }
- int main() {
- int n;
- printf("Digite o numero de pacientes: ");
- scanf("%d", &n);
- int i = 0;
- for(i = 0; i < n; i++) {
- int prioridade, ordem_de_chegada;
- printf("Digite a prioridade do paciente %d: ", i + 1);
- scanf("%d", &prioridade);
- incrementa_fila(prioridade);
- }
- print();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement