Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct lista {
- char info;
- struct lista* prox;
- } Lista;
- Lista* lista_cria() {
- return NULL;
- }
- Lista* lista_insere (Lista* l, int i) {
- Lista* novo = (Lista*) malloc(sizeof(Lista));
- novo->info = i;
- novo->prox = l;
- return novo;
- }
- void lista_imprime (Lista* l) {
- Lista* p; /* variavel auxiliar para percorrer a lista */
- for (p = l; p != NULL; p = p->prox)
- printf("info = %c\n", p->info);
- }
- /* função copia */
- Lista* copia (Lista* l)
- {
- Lista*q /*auxiliar para copiar a lista*/
- Lista* novo = (Lista*) malloc(sizeof(Lista));
- novo->info = i;
- novo->prox = l;
- q = Lista*l
- return q;
- }
- Lista* lista_libera (Lista* l) {
- Lista* p = l;
- while (p != NULL) {
- Lista* t = p->prox; /* guarda referencia para prox elto */
- free(p); /* libera a memoria apontada por p */
- p = t; /* faz p apontar para proximo elto */
- }
- return NULL;
- }
- main() {
- Lista* l;
- Lista* l2;
- l = lista_cria();
- l = lista_insere(l, 23);
- l = lista_insere(l, 45);
- l = lista_insere(l, 67);
- l = lista_insere(l, 89);
- l = lista_insere(l, 1011);
- printf("\nLista original:\n");
- lista_imprime(l);
- //criando e imprimindo a lista l2
- //l2 = lista_cria();
- l2 = lista_insere(l, 30);
- l2 = lista_insere(l, 44);
- l2 = lista_insere(l, 69);
- l2 = lista_insere(l, 90);
- l2 = lista_insere(l, 1013);
- printf("\nLiberando a memoria...\n");
- l = lista_libera(l);
- printf("\n**Lista depois da copia**\n");
- copia(l1,l2);
- getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement