A Estrutura de Dados
Por: Nilton Cesar • 15/10/2020 • Trabalho acadêmico • 460 Palavras (2 Páginas) • 150 Visualizações
Nilton César Silva Júnior
Exercicio 1:
Ambas as declaraões funciona, e podem ser usadas.
Exercico 2:
Recursiva:
void imprime (celula *le) {
if (le != NULL) {
printf ("%d\n", le->conteudo);
imprime (le->prox);
}
}
Interativa:
void imprime (celula *le) {
celula *p;
for (p = le; p != NULL; p = p->prox)
printf ("%d\n", p->conteudo);
}
Altura da lista:
void Listar(Item *cabeca)
{
int i;
if (EstaVazia(cabeca))
{
printf( " A lista esta vazia.\n\n" );
}
else
{
while(cabeca != NULL)
{
printf("%i ", cabeca->numero);
cabeca = cabeca->proximo;
}
}
}
Profundidade:
void percorrer (Lista* l){
Lista* p; /* variável auxiliar para percorrer a lista */
for (p = l; p != NULL; p = p->prox)
printf(“info = %d\n”, p->info);}
Exercico 3:
celula *busca (int x, celula *le) {
celula *p = le;
int achou = 0;
while (p != NULL && !achou) {
if (p->conteudo == x) achou = 1;
p = p->prox; }
if (achou) return p;
else return NULL;
}
Se encontrar o valor que foi pesquisado e diz que achou e mostra o dado armazenado em p, caso nao ache retorna NULL.
celula *busca (int x, celula *le) {
celula *p = le;
while (p != NULL && p->conteudo != x)
p = p->prox;
if (p != NULL) return p;
else printf ("x não está na lista\n");
}
Nessa funçao faz a busca e alem de mostra o dado armazenada em p, diz que x nao esta nessa lista.
Ambas as duas podem ser usadas mas a segunda ocupa menos espaço na memoria.
Funçao crescente:
lista *ordemCrescente(lista *p){
lista *aux = NULL;
lista *novo = p;
int *recebe;
int x=0;
int menor=0;
while(novo != NULL){
if(novo->dado < menor){
aux = novo->prox;
novo = novo->dado;
novo->dado = aux;
return p;
}
...