/* * Esqueleto para a implementação de listas. */ typedef int elem_t; typedef void* Lista; /* Inicializa uma lista */ void cria(Lista *p_l); /* Verifica se a lista está vazia ou não */ int vazia(Lista *p_l); /* Insere um elemento no início da lista */ void insere_inicio(Lista *p_l, elem_t e); /* Insere um elemento no final da lista */ void insere_fim(Lista *p_l, elem_t e); /* Insere um elemento na lista de maneira ordenada. Retorna 0 caso o elemento já exista na lista. Assume que a lista está ordenada */ int insere_ordenado(Lista *p_l, elem_t e); /* Verifica se a lista está ordenada */ int ordenada(Lista *p_l); /* Ordena a lista */ void ordena(Lista *p_l); /* Remove o elemento que está no início da lista. Retorna 0 caso a lista esteja vazia */ int remove_inicio(Lista *p_l, elem_t *p_e); /* Remove o elemento que está no final da lista. Retorna 0 caso a lista esteja vazia */ int remove_fim(Lista *p_l, elem_t *p_e); /* Remove o nó de valor e. Retorna 0 caso este nó não tenha sido encontrado */ int remove_valor(Lista *p_l, elem_t e); /* Inverte os elementos de uma lista */ void inverte(Lista *p_l); /* Remove todos os nós da lista */ void libera(Lista *p_l); /* Exibe o conteúdo da lista */ void exibe(Lista *p_l);