Pular para o conteúdo

Fila ordenada [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Fila ordenada [RESOLVIDO]

Enviado em 26/05/2009 - 23:37h

ola galera... seguinte, estou fazendo um escalonador de processos... e gostaria de colocar os processos ordenados em uma fila... alguem poderia me ajudar me mostrando um exemplo de fila ordenada!?

abraços!

Responder tópico

2. codigo

Enviado em 27/05/2009 - 01:25h

vou postar o codigo q eu fiz... para ver se alguem me ajuda onde q tah o erro

int insert(Fila *q, BCP d)

{

struct no *aux,*PercorreFila,*Old;

aux = (struct no*) malloc(sizeof(struct no));

PercorreFila = (struct no*) malloc(sizeof(struct no));
Old = (struct no*) malloc(sizeof(struct no));

if (aux==NULL)

return (0);



aux->dado=d;

aux->prox=NULL;



if(isEmpty(*q))
{
if (q->inicio==NULL)

q->inicio=aux;

if (q->fim!=NULL)

q->fim->prox=aux;

q->fim=aux;
}
else
{
PercorreFila = q->inicio;
while(PercorreFila->prox!=NULL && PercorreFila->dado.Prioridade<d.Prioridade)
{
Old = PercorreFila;
PercorreFila = PercorreFila->prox;

/*if(aux2->dado.Prioridade < aux->dado.Prioridade)
{
aux->prox = aux2->
} */
}
if(PercorreFila->prox == NULL)
{
PercorreFila->prox=aux;
// q->fim = aux;
}
else
{
Old->prox = aux;
aux->prox = PercorreFila;
}


}

return(1);

}

3. Re: Fila ordenada [RESOLVIDO]

Enviado em 27/05/2009 - 11:53h

Como você já deve saber uma fila é uma estrutura de dados do tipo lista, onde os elementos são inseridos no final dela e retirados do seu início, da mesma forma que acontece em uma fila de pessoas.

Basicamente o que você tem que implementar são uma classe No e uma classe Fila. Onde os nós possuirão uma informação de algum tipo (o qual você deve definir) e um ponteiro para o próximo No da Fila. Enquanto isso Fila terá dos ponteiros, para dois nós, o primeiro da Fila e o último.

class No
{
public:
No();
~No();
int get_info(); //Retorna uma informação de um nó
void set_info(int); //Inseri informação em um nó
No* get_prox(); //Retorna a referencia para o próximo nó
void set_prox(No*); //Modifica a referencia do próximo nó
private:
int info;
No* prox;
};

class Fila
{
public:
Fila();
~Fila();
No* get_primeiro();
No* get_ultimo();
void inserir(int);
void remover();
bool esta_vazia();
void imprimir();
private:
No* primeiro;
No* ultimo;
};

A implementação dos métodos fica por sua conta. Lembre-se que para inserir, como você quer uma fila ordenada, você precisa encontrar onde o novo elemento deve ser inserido.

Dê uma boa estudada em estruturas de dados ante de proseguir. Este link deve ajudar um pouco

http://www.icmc.usp.br/~sce182/index.html

Qualquer problema é só postar

4. Re: Fila ordenada [RESOLVIDO]

Enviado em 27/05/2009 - 12:33h

ola... tudo bem!?

eh q estou implementando em c... entaum naum teria como fazer em classes, isto eh um requisito... o meu prof. pediu um escalonador de processos... e preciso desta fila ordenada....

eu jah tentei de varias formas possivel... e estah complicado...

5. Re: Fila ordenada [RESOLVIDO]

Enviado em 27/05/2009 - 13:15h

opa... ae galera eu consegui ordenar a fila...

vlw pela contribuiçao quem respondeu o topico...

se alguem precisar do codigo.. eh soh falar...

ateh ^^

6. escalonador

Enviado em 29/04/2015 - 11:18h


Você poderia me passar o codigo?
Também estou fazendo um escalonador como trabalho da disciplina.
Obrigada

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder