Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
TADLista.h /* * File: TADLista.h * Author: joao * * Created on 16 de Abril de 2016, 13:35 */ #ifndef TADLISTA_H #define TADLISTA_H #ifdef __cplusplus extern "C" { #endif #include<stdlib.h> #include<string.h> #include<stdio.h> //Estrutura de Dados struct No { char nome[40]; struct No *prox; }; typedef struct No tpPont; //Prototipos---------------------------------------------------------------- void insere(tpPont **list, char nome[]); tpPont* busca(tpPont *list, char nome[]); void exclui(tpPont **list, char nome[]); void exibe(tpPont *lista); int getCont(tpPont *lista); void selecaoDireta(tpPont **list); //Funcoes------------------------------------------------------------------- /*insere(tpPont** ,char[]) *@param **list - ponteiro para a lista ja inicializada = NULL *@param nome[] - string contendo nome * Insere novo nome no final da lista */ void insere(tpPont **list, char nome[]) { tpPont *aux, * nova = (tpPont*) malloc(sizeof (tpPont)); //Alocando espaço para nova caixa strcpy(nova->nome, nome); nova->prox = NULL; if (*list == NULL) *list = nova; //Se a lista esta vazia a lista sera a propria caixa criada else { aux = *list; while (aux->prox != NULL)//navegamos até a ultim posicao da lista aux = aux->prox; aux->prox = nova; // Ligamos a nova caixa ao ponteiro final da lista } } //-------------------------------------------------------------------------- /*exclui(tpPont** ,char[]) *@param **list - ponteiro para a lista ja inicializada = NULL *@param nome[] - string contendo nome a procurar * Busca um elemento na lista e retorna um ponteiro para o elemento ou NULL */ tpPont* busca(tpPont *list, char nome[]) { tpPont *aux = list; while (aux != NULL && strcmp(aux->nome, nome) != 0) aux = aux->prox; return aux; } //-------------------------------------------------------------------------- /*exclui(tpPont** ,char[]) *@param **list - ponteiro para a lista ja inicializada = NULL *@param nome[] - string contendo nome a excluir * Exclui um determinado nome na lista */ void exclui(tpPont **list, char nome[]) { tpPont *aux = *list, *ant = NULL; if (aux != NULL) { if (aux->prox == NULL) {//Quando so ha um elemento na lista free(aux); *list = NULL; } else { //efetuamos uma busca(nao podemos usar) a funcao busca pois necessitamos do elemento anterior while (aux->prox != NULL && strcmp(aux->nome, nome) != 0) { ant = aux; aux = aux->prox; } if (strcmp(aux->nome, nome) != 0) {//confirmamos se a busca realmente encontrou o elemento ant->prox = aux->prox; //Isolamos o elemento free(aux); //liberamos a memoria } } } } //------------------------------------------------------------------------------ void exibe(tpPont *lista) { while (lista != NULL) { printf("Nome:[%s]\n", lista->nome); lista = lista->prox; } } //------------------------------------------------------------------------------ /*getConti(tpPont*) *@param *list - ponteiro para a lista * Retorna o numero de nomes contidos na lista */ int getCont(tpPont *lista) { int cont = 0; while (lista != NULL) { cont++; lista = lista->prox; } return cont; } //----------------------------------------------------------------------------- /*selecaoDireta(tpPont** ) *@param **list - ponteiro para a lista ja inicializada = NULL *Ordena a lista em ordem alfabetica pelo metodo de selecao direta */ void selecaoDireta(tpPont **list) { char menor[40]; tpPont *i = *list, *j = NULL; while (i->prox != NULL) { strcpy(menor, i->nome); j = i->prox; while (j != NULL) { if (strcmp(j->nome, menor) < 0) { strcpy(menor, j->nome); strcpy(j->nome, i->nome); strcpy(i->nome, menor); } j = j->prox; } i = i->prox; } } #ifdef __cplusplus } #endif #endif /* TADLISTA_H */ main.cpp /* * File: main.cpp * Author: joao * * Created on 16 de Abril de 2016, 13:34 */ #include <cstdlib> #include"TADLista.h" using namespace std; /* * */ int main(int argc, char** argv) { tpPont *lista = NULL; insere(&lista, "Joao"); insere(&lista, "Amanda"); insere(&lista, "Osmar"); insere(&lista, "Andre"); insere(&lista, "Luciana"); //exclui(&lista,"Amanda"); selecaoDireta(&lista); exibe(lista); return 0; }
Compartilhar