Lista encadeada c

Disponível somente no TrabalhosFeitos
  • Páginas : 3 (637 palavras )
  • Download(s) : 0
  • Publicado : 20 de junho de 2011
Ler documento completo
Amostra do texto
Segundo trabalho sobre listas encadeadas

Nomes:Aldir Koch

Obs.:
- Este trabalho deverá ser realizado em dupla ou individual.
- Todas as codificações deveram ser realizadas em C ANSI e deveser colocadas abaixo de cada questão.
- A entrega deste trabalho será no o dia 12/05/2011, impresso e haverá teste de autoria das codificações.
- Duvidas e esclarecimentos por email, MSN ou aulapresencial.

1. Crie um programa “exercicio1.c” contendo as seguintes funções:
a. Inserção no início;
b. Inserção no final;
c. Remoção de um elemento v passado como parâmetro;
d.Busca de um elemento v;
e. Listagem dos elementos contidos na lista;
f. Liberar a memória alocada.

2. Implemente uma função que tenha como valor de retorno o comprimento de uma listaencadeada, isto é, calcule o número de nós da lista. Esta função deve obedecer ao protótipo: int comprimento (lista* l);

3. Escreva um algoritmo que inverta a ordem dos elementos de uma listaencadeada. A inversão deve ser realizada de forma a não alterar a ordem física dos elementos na lista.

[pic]

#include
#include
#include

struct lista_no
{
int info;
struct lista_no *ant;struct lista_no *prox;
};

typedef struct lista_no LISTA;

LISTA* criar(void);
LISTA* insere_inicio(LISTA* l, int v);
LISTA* insere_final(LISTA* l, int v);
LISTA* buscar(LISTA* l, int v);LISTA* remover(LISTA* l, int v);
LISTA* inverte(LISTA* l);

LISTA* criar(void)
{
return NULL;
}

LISTA* insere_inicio(LISTA* l, int v)
{
LISTA* p = (LISTA*) malloc(sizeof(LISTA));p->info = v;
p->prox = l;
p->ant = NULL;

if(l != NULL)
l->ant = p;
return p;
}

LISTA* insere_final(LISTA* l, int v)
{
LISTA* p = (LISTA*)malloc(sizeof(LISTA));
p->info = v;
p->prox = NULL;

if (l==NULL)
l = p;
else
{
LISTA* atual = l;
while(atual->prox != NULL){
atual = atual->prox;...
tracking img