Algorítmo de lista encadeada simples linguagem c

564 palavras 3 páginas
/*

Algorítimo de Lista de encadeamento Simples Linguagem ultilizada : C

Ermesom Lourenco Ciências Da Computação Instituto de Informática Universidade Federal de Goiás

*/

#include
#include

typedef int elemento;

typedef struct no { elemento valor; struct no* proximo;
} No;

typedef struct lista{ No* inicio; No* fim; int quantidade;

} Lista;

void erro_lista_vazia(){ printf("Erro: Lista vazia!\n"); exit(1);
}

void erro_lista_posicao(){ printf("Erro: Posição inválida!\n"); exit(1);
}

void lista_inicializar(Lista* l){ l->inicio = NULL; l->fim = NULL; l->quantidade = 0;
}

int lista_quantidade(Lista l){

No* aux = l.inicio; int c = 0;

while (aux != NULL){ c++; aux = aux->proximo; }

return c;
}

void lista_inserir_inicio(Lista* l, elemento e){

No* aux = malloc(sizeof(No)); if (l->quantidade==0) { aux->valor = e; aux->proximo = l->inicio; l->inicio = aux; l->fim= aux; } else { aux->valor = e; aux->proximo = l->inicio; l->inicio = aux; } l->quantidade++;

}

elemento lista_remover_inicio(Lista* l){

if (l->inicio == NULL) erro_lista_vazia();

No* aux = l->inicio; l->inicio = aux->proximo; elemento e = aux->valor; free(aux); l->quantidade--; return e;
}

elemento lista_inicio(Lista l){

if (l.inicio == NULL) erro_lista_vazia();

No* aux = l.inicio;

return aux->valor;
}

void lista_inserir_fim(Lista* l, elemento e){

No* aux = malloc(sizeof(No)); aux->valor = e; aux->proximo = NULL;

if (l->quantidade == 0) { l->inicio = aux; l->fim = aux; }else { l->fim->proximo = aux; l->fim = aux; } l->quantidade++; }

elemento lista_remover_fim(Lista* l){

if (l->inicio == NULL) erro_lista_vazia();

No* aux = l->inicio;

if (aux->proximo == NULL){ l->inicio = NULL; l->fim=NULL; } else {

No* n = l->inicio; aux =

Relacionados

  • Lista lineares encadeadas
    2507 palavras | 11 páginas
  • dfsdfasfscdf
    16697 palavras | 67 páginas
  • Trabalhos
    3085 palavras | 13 páginas
  • apostila 2014
    3055 palavras | 13 páginas
  • Port 3 Sem
    2889 palavras | 12 páginas
  • Especialista
    19357 palavras | 78 páginas
  • Analise de sistemas modulo 3
    2765 palavras | 12 páginas
  • Atividade de produção textual
    3021 palavras | 13 páginas
  • Analise de sistemas modulo 3
    2765 palavras | 12 páginas
  • O trabalho
    5576 palavras | 23 páginas