Ir para conteúdo
Fórum Script Brasil
  • 0

Exercicio Estrutura de Dados


pika1758

Pergunta

O professor passou uns exercicios aqui, mas não to ocnseguindo fazer nem um.. só fiz a "base" do exercicio, qualquer um que me ajudarem a fazer já ta bom, já é uma grande ajuda.

a lista de exercicios:

LISTA FILAS
1)CRIE UMA FUNÇAO QUE não DEIXE ENFILEIRAR UM ELEMENTO JÁ EXISTENTE
EX: 8 -> 4 -> 10
QUERO INSERIR O 4.
A FUNÇAO não DEIXARÁ.
2)CRIE UMA FUNÇAO QUE TROCA O ATUAL FIM DA FILA PELO INICIO.
3)CRIE UMA FUNÇAO QUE INVERTA TODA A SEQUENCIA DA FILA.
4)CRIE UMA FILA DUPLAMENTE ENCADEADA. FAÇA AS OPERAÇOES DE ENFILEIRAR E DESENFILEIRAR.
5)CRIE UMA FILA COM PRIORIDADE. (MAIOR PRIORIDADE = 0)
EXEMPLO
VALOR2 --> VALOR3 -->VALOR5
PRIORIDADE:0 PRIORIDADE:2 PRIORIDADE:1
6)CRIE UMA FUNÇAO QUE DELETA OS ELEMENTOS IMPARES DA FILA, REORGANIZANDO A MESMA.
o que eu tenho até agora:
#include <stdio.h>
#include <stdlib.h>

struct no
{
    struct no* proximo;
    int valor;
};
typedef struct no No;
No* inicio = NULL;
No* fim = NULL;


void pegainicio(){
    if (inicio==NULL){
    printf("\n\nInicio ta vazio.");
    }
    else{
printf("\n\n%d", inicio->valor);

    }
}
void pegafim(){
if(fim==NULL){
printf("\n\nFim vazio.");
}
else{
printf("\n\n%d", fim->valor);
}

}
void main()
{
    int a;
    while(a!=0)
    {
        printf("\nDigite um numero:");
        scanf("%d", &a);
        if(a!=0)
        {
            enfileirar(a);
        }
    }

    pegainicio();
    pegafim();

    desenfileirar();

    pegainicio();
    pegafim();

}

//CODIGO ENFILEIRAR
void enfileirar(int elemento)
{
    No* novo=(No*)malloc(sizeof(No));
    novo->valor=elemento;
    novo->proximo=NULL;
    if (inicio==fim)
    {
        if (inicio==NULL)
        {
            inicio=fim=novo;
        }
        else
        {
            inicio->proximo=novo;
            fim=novo;
        }
    }
    else{
        fim->proximo =novo;
        fim=novo;

    }
}

//CODIGO DESENFILEIRAR
void desenfileirar()
{
/*primeiro teste - ver se ta vazia*/
/*inicio e fim tem q ser NULL*/
    if (inicio==NULL)
    {
        printf("Fila vazia.");
    }
    else /*1 ou n elementos*/
    {
        No* aux=inicio->proximo;
        free(inicio);
        inicio=aux;
        if(inicio==NULL)
        {
            fim=NULL;
        }
    }
}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...