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

C++


Felipe Sobreira da Silva

Pergunta

Descrição: Dev-C++ é um ambiente de desenvolvimento integrado livre que utiliza os compiladores do projeto GNU para compilar programas para o sistema operacional Microsoft Windows.

Suporta as linguagens de programação C e C++, e possui toda a biblioteca ANSI C.

Atividade proposta: Criar uma lista ligada para armazenar dados de um aluno e implementar operações sobre essa lista

1 - Procedimentos para a realização da atividade: Para criar uma ligada você precisará de uma struct, que armazene os dados e o ponteiro para a próxima posição, por exemplo: struct lista { int info; struct lista* prox; }; typedef struct lista Lista;

2 - A alocação de memória para a lista deve ser feita por meio da função malloc(), além disso precisamos inicializá-la.

3 - implemente a função para remover um aluno na lista.

4 - implemente uma função que permita imprimir os dados armazenados em uma lista.

5 - E para finalizar seu trabalho com listas, implemente uma função que permita procurar um determinado elemento na lista.

Checklist:

Criar uma struct para armazenar dados de um aluno em forma de lista;

Inicializar a lista;

Criar uma função para inserir um aluno na lista;

Criar uma função para remover um aluno na lista;

Criar uma função para imprimir os dados na lista;

Criar uma função para procurar um aluno na lista;

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

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

struct lista{
    int info;
    struct lista* prox;
};
typedef struct lista Lista;

void inserir(Lista *l){
    Lista* novo= (Lista*)malloc(sizeof(Lista));
    if(!novo){
        printf("SEM MEMORIA!\n");
        exit(1);
    }
    printf("\nInforme um valor: ");
    scanf("%d", &novo->info);
    if(l!=NULL){
        l->prox=novo;
    }
    else{
        Lista *aux = l-> prox;
        while(aux->prox!= NULL){
            aux=aux->prox;
        }
        aux->prox=novo;
    }
}

Lista *retira_ultimo(Lista *l){
    if(l!=NULL){
        printf("Lista vazia.\n");
        return NULL;
    }
    else{
        Lista *ultimo = l->prox, *penultimo = l->prox;
        while(ultimo->prox!=NULL){
            penultimo=ultimo;
            ultimo=ultimo->prox;
        }
        penultimo->prox=NULL;
        return ultimo;
    }
}
main(){
    int op=1;
    Lista *l= (Lista*)malloc(sizeof(Lista));
    l ->prox = NULL;
    Lista* novo= (Lista*)malloc(sizeof(Lista));

    inserir(l);
    while(op==1){
        printf("Inserir novo elemento: 1 <sim> outro valor <não> : ");scanf("%d", &op);
        if (op==1)
            inserir(l);
    }

    retira_ultimo(l);

    printf("\n\nA lista depois de retirar o ultimo numero digitado e o seguinte.\n\n");
    if(l!=NULL){
        printf("Lista vazia.\n");
    }
    Lista *aux = l->prox;
    while(aux!=NULL){
        printf("%d\n", aux->info);
        aux=aux->prox;
    }

    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...