alphasil Posted July 8, 2012 at 09:34 PM Report #467975 Posted July 8, 2012 at 09:34 PM 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
pmg Posted July 8, 2012 at 09:51 PM Report #467977 Posted July 8, 2012 at 09:51 PM 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!
alphasil Posted July 8, 2012 at 10:01 PM Author Report #467978 Posted July 8, 2012 at 10:01 PM Oi Como são filas, o prof pôs num exercício variáveis globais. Está incompleto, que mais fazia falta? Iniciar a lista não é? gmc11
pmg Posted July 8, 2012 at 10:22 PM Report #467983 Posted July 8, 2012 at 10:22 PM Está incompleto, que mais fazia falta? Acrescentar no principio; acrescentar no fim ... pesquisar ... apagar 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!
HappyHippyHippo Posted July 9, 2012 at 09:01 AM Report #468000 Posted July 9, 2012 at 09:01 AM 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 Portugol Plus
alphasil Posted July 9, 2012 at 09:53 PM Author Report #468113 Posted July 9, 2012 at 09:53 PM Oi HHH Mais uma vez obrigado. Então neste caso é melhor criar um estrutura de dados que vai comportar a outra certa (para filas duplamente ligadas)? gmc11
HappyHippyHippo Posted July 10, 2012 at 06:05 AM Report #468132 Posted July 10, 2012 at 06:05 AM 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 Portugol Plus
Baderous Posted July 13, 2012 at 01:35 PM Report #468588 Posted July 13, 2012 at 01:35 PM Queria só fazer um reparo na ajuda do HHH, que é a questão das operações nas queues não se chamarem push e pop (associadas à estrutura stack) mas sim enqueue e dequeue.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now