Tad de lista em c - com deslocamento de elementos
#include
#include
#include "ListaEncadeada.h" main() { FILE *fp; fp = fopen("Lista1.txt","w"); Lista *l = inicializa(); /* inicia lista vazia */ l = insere(l, 10); l = insere(l, 6); l = insere(l, -38); l = insere(l, 49); l = insere(l, 0); l = insere(l, 9); l = insere(l, 25); l = insere(l, -2); l = insere(l, 7); l = insere(l, -23); l = insere(l, -5); l = insere(l, 12); l = insere(l, 5); printf ("Lista 1: "); imprime(l); printf ("\n\nLista 1 (Com o primeiro elemento deslocado!)"); deslocar(l); fclose(fp); system("PAUSE");
}
BIBLIOTECA.H
typedef struct lista Lista;
/* função de inicialização: retorna uma lista vazia */
Lista* inicializa();
/* inserção no início: retorna a lista atualizada */
Lista* insere(Lista *l, int i);
/* função imprime: imprime valores dos elementos */ void imprime(Lista *l);
/* função libera: libera a memória ocupada pela lista */ void libera(Lista *l);
void deslocar(Lista *l);
void inserirNoFim(Lista *l);
void inserirNoFim2(Lista *l);
void eliminar(Lista *l);
Lista* recursive(Lista *l);
FUNÇÔES
#include
#include
#include "ListaEncadeada.h"
struct lista
{
int info; struct lista* prox;
};
Lista* inicializa()
{
return NULL;
}
Lista* insere(Lista *l, int i)
{
Lista *novo = (Lista*) malloc(sizeof(Lista)); novo->info = i; novo->prox = l; return novo;
}
void imprime(Lista *l)
{
Lista *p; printf ("\n"); for(p = l; p != NULL; p = p->prox) { printf("%d ", p->info); } }
Lista* recursive(Lista *l)
{
Lista *new_head = NULL; Lista *p; while(p != NULL) { Lista *tmp = p->prox; p->prox = new_head; new_head = p; p = tmp; } return new_head;
}
void deslocar(Lista *l)