Ir para conteúdo
Fórum Script Brasil

Marcos Sales

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Marcos Sales

Marcos Sales's Achievements

0

Reputação

  1. Galera, to precisando de uma forte ajuda com esse código que eu estava montando e fico extremamente grato se vocês puderem me ajudar com seus conhecimentos . Preciso fazer uma remoção de lista circular, vou publicar o código abaixo #include <iostream> using namespace std; struct no { int info; struct no*prox; struct no*ant; }; typedef struct no* noPtr; noPtr inicio = NULL; noPtr fim = NULL; // Escopo das funcoes int menu(); bool listaVazia(); void inserir(); void listar(); void remover(); //bool achei(); // termino do escopo int main() { int valor; do { valor = menu(); switch(valor) { case 1: inserir(); break; case 2: listar(); break; case 3: remover(); break; case 0: break; } } while(valor != 0); return 0; } int menu() { int op; cout << "Digite um numero para comecar\n "; cout << "Digite 1 para inserir " << endl; cout << "Digite 2 para listar " << endl; cout << "Digite 3 para remover " << endl; cin >> op; return op; } bool listaVazia() { if(inicio == NULL) return true; else { return false; } } void inserir () { noPtr p = new no; cout << "Digite um numero que queira inserir na lista " << endl; cin >> p->info; if(listaVazia()) { inicio = p; p->prox = fim; p->ant = fim; // lista circular retorna a ela mesmo, no caso ao inicio; } else { p->prox = inicio; inicio ->ant = p; p->ant = inicio; inicio = p; } } void listar() { noPtr p = inicio; if(!listaVazia()) { while(p != fim) { cout << p->info << endl; p = p->prox; } } else { cout << "Lista Vazia ! \n"; } } void remover() { int num; cout << "Digite um numero que queira remover, caso ele exista " << endl; cin >> num; noPtr p = inicio; if(!listaVazia()) { while(p->prox != fim) { if(num == p->info) { if(p->prox == fim) { p->ant ->prox = fim; delete(p); } if(p->ant == fim) { p->prox->ant = fim; p->ant -> prox = p->prox; p->ant -> prox = inicio; delete(p); } if(p->prox != fim && p->ant != fim) { p->ant -> prox = p-> prox; p->prox ->ant = p->ant; delete(p); } } p = p->prox; } } else { cout << "Lista Vazia\n"; } } /* bool achei() { noPtr p = inicio; while(p->prox != fim) { if(p->info == num) { return true; } p = p->prox; } return false; } */
×
×
  • Criar Novo...