-
Posts
3 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por ineedahelp
-
-
Desculpa@Simon Viegas ! Eu justamente copiei o código errado!
No que era pra ser o correto, só estava dando esse erro que falei mesmo. Mas com sua ajuda consegui consertar!
Muito obrigado.- 1
-
Boa tarde!
Minha lista só está exibindo todos os valores quando coloco um elemento no início. Tipo, se eu adicionar elementos só ao final dela e pedir pra exibir, eles não aparecem.
Alguém pode me dar uma ajuda?
#include<stdio.h> #include<stdlib.h> typedef struct no { int info; struct no *prox; }LISTA; LISTA *criarLista() { return NULL; } LISTA * inserirInicio(LISTA *lista, int num) { LISTA *novo= (LISTA*) calloc(1,sizeof(LISTA)); novo->info= num; novo->prox=lista; return novo; } void inserirFinal(LISTA *lista, int num) { LISTA *novo =(LISTA*) calloc(1,sizeof(LISTA)); novo->info= num; LISTA *aux= lista; LISTA *ant= NULL; if(lista==NULL) { lista=novo; } else { while(aux!=NULL) { ant=aux; aux=aux->prox; } ant->prox= novo; } } void imprime(LISTA *lista) { LISTA *p; for(p=lista; p!=NULL; p=p->prox) { printf(" %d\n", p->info); } } void buscar(LISTA *lista, int valor) { LISTA *p; for(p=lista;p!=NULL;p=p->prox) { if(valor==p->info) { printf("Valor %d encontrado!\n", valor); } } } LISTA *retira(LISTA *lista, int valor) { LISTA *p; p=LISTA; LISTA *ant=NULL; while((p!=NULL)&&(valor!=p->info)) { ant=p; p=p->prox; } if(p==NULL) { return LISTA; } if (ant==NULL) { LISTA=p->prox; } else { ant->prox=p->prox; } free(p); return LISTA; } int main() { LISTA *lista; LISTA *p; int op; int num; int pos; int valor; do { printf("\n\tMENU DE opções\n\n"); printf("(1) Criar Lista\n"); printf("(2) Inserir Início\n"); printf("(3) Inserir Final\n"); printf("(4) Imprimir Valores\n"); printf("(5) Buscar Valor\n"); printf("(6) Retirar valor\n"); printf("(7) Sair\n"); printf("ESCOLHA UMA OPCAO: "); scanf("%d", &op); switch(op) { case 1: lista=criarLista(); break; case 2: printf("Entre com o numero que deseja inserir: "); scanf("%d", &num); lista=inserirInicio( lista, num); break; case 3: printf("Entre com o numero que deseja inserir: "); scanf("%d", &num); inserirFinal(lista, num); break; case 4: imprime(lista); break; case 5: printf("Entre com o valor que deseja buscar: "); scanf("%d", &valor); buscar(lista, valor); break; case 6: printf("Entre com o valor que deseja retirar: "); scanf("%d", &valor); lista=retira(lista, valor); break; case 7: break; } } while(op!=7); }
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
Lista Encadeada - Não inserir números iguais
em C/C#/C++
Postado
Boa noite! Desenvolvi uma lista encadeada porém quero que a mesma não aceite números que já foram alocados na lista.
Tento de várias formas porém sem sucesso. Alguém pode me ajudar com alguma orientação?
Tô deixando apenas o código da função, mas se for necessário coloco o código completo.