Ir ao conteúdo
  • Cadastre-se

Minha lista encadeada não está imprimindo. Alguém ajuda?


Posts recomendados

Sou inciante e estou treinando alguns conceitos básicos na faculdade sobre listas encadeadas com ponteiros.

Estou implementando uma lista onde quero fazer cadastro de moradores de um condomínio, onde serão cadastrados o nome e se possuem veículos dentro do apartamento. 

Porém na hora que chamo a função imprimir(), simplesmente não acontece nada, embora eu ache que a lógica esteja certa.

Alguém pode me ajudar ?

Segue o código:

 

#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
 
struct Morador
{
    string nome;
    string veiculo;
    string placa;
    string condominio;
    Morador *proximo;
};
struct ListaMoradres
{
    Morador *primeiro;
};
 
ListaMoradres lista; // CRIEI UMA LISTA GLOBAL, POIS QUERO QUE A LISTA CONTINUE COM OS CADASTROS MESMO APÓS O FIM DA EXECUÇÃO                                    // DO MAIN (NAO SEI SE TA CERTO FAZER ISSO KKK)
void inciar()
{
    lista.primeiro = nullptr;
}
void inserir_Morador()
{
    string nome = "";
    string veiculo = "";
    string placa = "";
    string condominio = "";
    int op;
 
    cout << "Digite o nome do morador\n";
    cin >> nome;
    cout << "\nPossui veiculo?\n1-SIM\t2-NAO\n";
    cin >> op;
    switch (op)
    {
      case 1:
        cout << "Carro ou Moto? 1- CARRO\t2- MOTO\n";
        cin >> op;
        if (op == 1)
        {
            cout << "Digite placa:\n";
            cin >> placa;
            veiculo = "(Carro)";
            break;
       }
       else
       {
            cout << "Digite placa\n";
            cin >> placa;
            veiculo = "Moto";
            break;
       }
    case 2:
        veiculo = "Nao possui";
        break;
    default:
        cout << "Opcao invalida\n";
        break;
    }
}
if (lista.primeiro == nullptr)
{
    Morador *primeiro_Morador = new Morador();
    lista.primeiro = primeiro_Morador;
    primeiro_Morador->nome = nome;
    primeiro_Morador->veiculo = veiculo;
    primeiro_Morador->placa = placa;
    primeiro_Morador->condominio;
    primeiro_Morador->proximo = nullptr;
    cout << "Primeiro morador inserido com sucesso\n";
    return;
}
else
{
    Morador *ultimo = lista.primeiro;
    while (ultimo->proximo != nullptr)
    ultimo = ultimo->proximo;
    Morador *novo = new Morador();
    ultimo->proximo = novo;
    novo->nome = nome;
    novo->veiculo = veiculo;
    novo->placa = placa;
    novo->condominio = condominio;
    novo->proximo = nullptr;
    cout << "Morador inserido com sucesso\n";
    return;
}
}
void imprimir()
{
    Morador *inicio = lista.primeiro;
    while (inicio->proximo != nullptr)
    {
        cout << "\nNome: "+inicio->nome << endl;
        cout << "Veiculo: " + inicio->veiculo << endl;
        cout << "Placa: " + inicio->placa << endl;
        cout << "Condominio: " + inicio->condominio << endl;
        inicio = inicio->proximo;
    }
return;
}
int main()
{
    int op;
    cout << "1 - inciazlizar\t2 - inserir\t3 - imprimir\n";
    cin >> op;
    switch (op)
    {
        case 1:
           inciar();
           break;
        case 2:
           inserir_Morador();
           break;
        case 3:
           imprimir();
           break;
        default:
           cout << "Opcao invalida\n";
           break;
}
main();
}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...