Lista encadeada implementada em c

627 palavras 3 páginas
#include // as funções malloc e free são definidas aqui
#include "lista.h"
#include
#include
#include
#include
#include
#include
#include

#define TRUE 1
#define FALSE 0

//criar uma lista struct Lista * criaLista(){ struct Lista * lista;

lista = (struct Lista*) malloc(sizeof (struct Lista)); lista->primeiro = NULL; lista->comprimento = 0;

return lista;
}

//cria nodo (auxiliar de adicionaItem) struct Nodo * criaNodo(struct Registro * dados){ struct Nodo * nodo; nodo = (struct Nodo*) malloc(sizeof (struct Nodo));

if(nodo == NULL) return NULL;

nodo -> dados = dados; nodo -> proximo = NULL; return nodo;
}

//adiciona no inicio da lista int adicionaItem(struct Lista * lista, struct Registro * dados){ struct Nodo * nodo;

if(lista == NULL) return 0;

nodo = criaNodo(dados); if( nodo == NULL) return 0;

nodo->proximo = lista -> primeiro; lista->primeiro = nodo;

lista->comprimento++;

return 1;
}

//adiciona no final da lista int adicionaItemNoFim(struct Lista * lista, struct Registro * dados){ struct Nodo * nodo; struct Nodo * fim; //ponteiro para percorrer a lista. if(lista == NULL) return 0;

nodo = criaNodo(dados); if( nodo == NULL) return 0;

if(lista->comprimento == 0){ return adicionaItem(lista, dados); }

nodo = criaNodo(dados); fim = lista->primeiro; while(fim->proximo != NULL) { fim = fim->proximo; } fim->proximo = nodo; lista->comprimento ++;

return 1;
}

struct Nodo * nodoNaPosicao(struct Lista * lista, int posicao){ struct Nodo * p; p=lista->primeiro; if ((posicao < 0) || (posicao >= lista->comprimento)) return NULL;

while (posicao>0) { p = p->proximo; posicao--; } return p;
}

int adicionaItemNaPosicao(struct Lista * lista, struct Registro * dados, int posicao){ struct Nodo * nodo; struct Nodo * p;

if(posicao>0) { p=nodoNaPosicao(lista, posicao-1); if (p == NULL)

Relacionados

  • Estrutura de dados
    1447 palavras | 6 páginas
  • Contrua uma função em c++ que verifique em uma Estrutura do tipo pilha se o número de abre parênteses é igual ao números. De fecha parenteses
    834 palavras | 4 páginas
  • ESTRUTURA DE DADOS LISTA ENCADEADA 2015
    866 palavras | 4 páginas
  • Questões
    2254 palavras | 10 páginas
  • Trabalhos
    805 palavras | 4 páginas
  • Material ED
    51934 palavras | 208 páginas
  • java
    844 palavras | 4 páginas
  • estrutura de dados
    743 palavras | 3 páginas
  • Pilhas e fias
    1188 palavras | 5 páginas
  • Trabalho
    3601 palavras | 15 páginas