AJUDA COM LISTA LIGADA SIMPLES

1. AJUDA COM LISTA LIGADA SIMPLES

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/05/2012 - 11:40h

Olá pessoal,

Estou com dificuldades em finalizar meu código pois preciso:

1- código que conta quantos elementos a lista tem;

2- fazer uma função que conta (que anda e incrementa uma/a variavel);

3- pega um ponteiro auxiliar e coloca no 1º elemento da lista;

4- pega uma variavel auxiliar e diz que ela tem "zero"(lixo) e fazer um loop;

5- andar c esse auxiliar p o proximo elemento e incrementando;

6- quando chegar no ultimo elemento da lista e n poder ir pro proximo, ai retorna o nº de elementos (valor da variavel q foi criada)

7- acredito que usar um while seja suficiente.


Segue o meu código abaixo:

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

typedef struct_TNO TNO;
struct TNO {
int elem;
TNO *prox;
};

typedef TNO *TLIsta;
int inserir (TLIsta lista, int elem, int pos){
TNO *novoNo, *aux;
/*insere elem na posição pos da lista. A primeira da lista é a nº 1. Caso pos >tamanho lista, então não insere e retorna 0 indicando isto.
Inserção com duplicidade */
if (pos <= 0 || pos > tamanho (lista) +1)
return 0;
//posição indicada é válida
novoNo = (TNO*) malloc (sizeof (TNO));
novoNo.elem = elem;
novoNo.prox = NULL;
i = 1;
aux = lista;
while (i < pos){
i++;
aux = aux -> prox;
};
novoNo -> prox = aux -> prox;
aux -> prox = novoNo;
return 1;
}

//FUNÇÃO CONTADOR
int nos (struct no ** inicio)
{
int c =0 ;
struct no * aux ;
aux = (struct TNO * ) malloc (sizeof(struct TNO));
aux = (*inicio) ;
if((*inicio) == NULL) printf("Lista Vazia - 0 nos ! \n");

else
if((*inicio) -> prox == NULL) c++ ;
else
{
while ( aux != NULL)
{
aux = aux -> prox ;
(c) ++ ;
}
}
return (c);
}

Detalhe: o código não compila!

Help!

Obrigado!






  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts