Ir ao conteúdo
  • Cadastre-se

Dúvida Lista Simplesmente Encadeada


pipoca_gti

Posts recomendados

Bom dia pessoal,

Estou com uma dúvida referente a Lista Simplesmente Encadeada em C que ta me matando. A lista ta funcionando perfeitamente, já criei as funções para inserir no inicio e final e para imprimir. Os números para iniciar a lista são obtidos após sorteio de  números (função rand()) onde os números ímpares e pares devem ser inseridos a esquerda e direita respectivamente, e após a lista deve ser impressa. Até aí tudo bem. O problema está na função para pesquisar um numero digitado pelo usuário, onde se o numero existir na lista deverá retornar para o usuário a posição que o número está na lista. (o valor deverá ser lido na main e passado por parâmetro para a Função de pesquisa). Se alguém puder dar uma mão aí agradeço. Segue o código...

#include <stdlib.h>#include <stdio.h>#include <math.h>#include <conio.h>struct nodo{  int dados;  struct nodo *prox;       };int InsereEsquerda (struct nodo **inicio, int valor){ // função recebe como parâmetro o ponteiro (ptri) e o valor inteiro  struct nodo *novo=NULL;  novo=(struct nodo *)malloc(sizeof(struct nodo));  if (novo != NULL){    novo->dados=valor;    novo->prox=*inicio;    *inicio=novo;  }  else    printf("Nao foi possivel alocar\n");}//fim da função insereEsquerdaint InsereDireita(struct nodo **inicio, int valor){ // função recebe como parâmetro o ponteiro (ptri) e o valor inteiro  struct nodo *novo=NULL, *aux=NULL;   novo=(struct nodo *)malloc(sizeof(struct nodo));  if(novo != NULL){    novo- dados = valor;    novo->prox=NULL;    if(*inicio == NULL)      *inicio=novo;    else{      aux=*inicio;      while(aux->prox != NULL){        aux = aux->prox;      }      aux->prox=novo;    }  }  else    printf("\nNao foi possivel alocar");}//fim da funçao insere_direitaint ImprimeLSE(struct nodo **inicio){  struct nodo *aux=NULL;  if(*inicio!=NULL){    aux=*inicio;    while(aux != NULL){       printf("%i\t", aux->dados);        aux=aux->prox;    }  }   else    printf("\nLista Vazia\n");}// fim da função ImprimeLSEint main(){        struct nodo *ptri=NULL;  // Inicialização do ponteiro *ptri como nulo  int i, nro, num;      for(i=0; i<TAM; i++){    nro = rand()%51;  // sorteio dos 20 numeros    if(nro %2 == 0){  // se par inserir a direita      InsereDireita(&ptri, nro);     }    else {  // se impar inserir a esquerda      InsereEsquerda (&ptri, nro);      }   }  ImprimeLSE(&ptri); //impressão da lista    printf("\n\nInforme um número para pesquisar na Lista: ");  scanf("%i", &num);      //se o numero digitado estiver na lista...  printf("\n\nPosição %i da Lista", ??????? );    //se o numero digitado não estiver na lista  printf("\n\nO número informado não está na lista");  getch();}
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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!