Jump to content

Queues - Pergunta de Exame


alphasil
 Share

Recommended Posts

Oi

Pedem-me num exame que:

Sabendo que a resolução do problema recorre ao uso de uma Queue, e que a Queue é implementada numa

lista duplamente ligada, defina a estrutura de dados que representa a Queue. Defina a Queue local à função main().

Fiz assim

#include <stdio.h>
#include <stdlib.h>

typedef struct clinica
{
 char nome[100];
 int idade;
 char acomp[100];
 char grau[100];
 char sintomas[100];
 struct clinica *Prox, *Ant;
} fila;

fila *init, *fim;

fila* fVazia()
{
 return NULL;
}

int main()
{
 fila* aux;
 aux=fVazia();

 //printf("Hello world!\n");
 return 0;
}

Está certo ou nem por isso??

Obrigado

gmc11

 

Link to comment
Share on other sites

Acho que sim ... embora muito, muito incompleto.

Continua que vais no bom caminho.

PS para que sao as variaveis globais `init` e `fim`? Nao precisas delas para nada.

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Link to comment
Share on other sites

Como são filas, o prof pôs num exercício variáveis globais.

Que comichão !!!!!!

O que acabaste de dizer não tem pés nem cabeça. O "prof" pós variáveis globais porque vocês estão a aprender como trabalhar com ponteiros, porque de outro como não existe variáveis globais !!!

Até porque parece que no final do enunciado dita que essa metodologia é para ser alterada

Defina a Queue local à função main().

Para que se definia uma estrutura como lista duplamente ligada (sendo ela manipulada como queue, stack, ou outra semelhante), basta mesmo ter além da informação do objecto na estrutura, os ponteiros para a posição anterior e posterior.

Agora, se perguntas se fazes alguma coisa sem as funções/métodos apropriados de manipulação que lhe confere a denominação de queue, claro que não, e é isso que falta no teu código e que o @pmg refere que falta fazer.

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

faz assim, com a estrutura que tens que está correta para listas duplamente ligadas sem cabeça) e tenta implementar as seguintes funções:

#include <stdio.h>
#include <stdlib.h>
// Definição de estrutura de dados de cada elemento da fila
// é usada para facilitar a manipulacao dos dados nas funções da fila
// nao quer dizer que a tua implementacao esteja mal, simplesmente
// tornaria a lista de argumentos das funcoes  mais extensa
typedef struct
{
   char nome[100];
   int idade;
   char acomp[100];
   char grau[100];
   char sintomas[100];
} registo;

// Definicao da estrutura de dados que implementa a fila duplamente ligada
typedef struct clinica
{
   // Conjunto de dados a ser guardados num elemento da fila
   registo reg;
   // Ponteiros de ordenação da fila
   struct clinica *Prox;
   struct clinica *Ant;
} fila;

fila * filaCriar()
{
 // Criar uma fila
}

int filaDestruir(fila ** f)
{
   // código de limpeza de toda memória usada da fila
}

int filaTamanho(fila * f, int * size)
{
   // calcular o numero de elementos da fila
   // vais guardar o tamanho o ponteiro "size"
}

int filaPush(fila * f, registo reg)
{
   // codigo de inserir o elemento da lista
}

int filePop(fila * f, registo * reg)
{
   // codigo de retirar o elemento da lista
   // guardando-o no ponteiro "reg"
}

int filaEsvaziar(fila * f)
{
   // codigo que elimina todos os elementos guardados na fila
}

int main()
{
   fila * f = filaCriar();

   // podes chamar as funcoes de manuseamento da fila aqui

   filaDestruir(&f);
   return 0;
}

bom código

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.