Ordenação de strings

542 palavras 3 páginas
#include
#include

// define a estrutura do no struct _no { char nome[40]; char telefone[15]; struct _no *proximo;
};
typedef struct _no No;

// define um ponteiro para o no raiz
No *plista=NULL;

void Insere(char *nome, char *telefone) { No *novo; No *dir; No *esq;

// verifica se o nó raiz é nulo. Se for, cria nó raiz com os dados fornecidos if (plista==NULL) { plista = (No *)malloc(sizeof(No)); strcpy (plista->nome,nome); strcpy (plista->telefone,telefone); plista->proximo = NULL; } else { // se já houver raiz

// percorre a lista encadeada, comecando da raiz. Inicialmente, não // há nó anterior novo = NULL; dir = plista; while (dir!=NULL) { if (strcmp(dir->nome,nome)>=0) break; // se o nó atual é // lexicograficamente superior, // pára else { novo = dir; dir = dir->proximo; } }

if (dir != NULL) // só faz a comparação abaixo se existe o nó Atual if (strcmp(dir->nome,nome)==0) { printf ("Nome já existente!\n"); return; } // aloca memória para o novo nó esq = (No *)malloc(sizeof(No)); // coloca o nó na lista encadeada, mudando o ponteiro para o próximo no // do nó anterior if (dir != plista) novo->proximo = esq; else // se atual é nó raiz, atualiza raiz plista = esq; // coloca dados no nó Inserido strcpy (esq->nome,nome); strcpy (esq->telefone,telefone);

// indica que o próximo nó do nó inserido é o nó apontado por Atual esq->proximo = dir; }
}

void Busca(char *nome) { No *dir; // percorre a lista encadeada desde a raiz dir = plista; while (dir!=NULL) { // verifica se já encontrei ou já passei do nome procurado if (strcmp(dir->nome,nome)>=0) break; else // se ainda não passou dir = dir->proximo; } // verifica se

Relacionados

  • Metodo de ordenação c++
    1829 palavras | 8 páginas
  • APS CC2 3 semestre
    3113 palavras | 13 páginas
  • Dicas de desempenho - Android
    745 palavras | 3 páginas
  • Metodos de ordenação
    4593 palavras | 19 páginas
  • algoritmo de ordenacao
    3024 palavras | 13 páginas
  • Algoritmos de ordenação
    2341 palavras | 10 páginas
  • ForcaBruta
    1604 palavras | 7 páginas
  • Fuçao PHp
    1637 palavras | 7 páginas
  • APS DP pronta
    4882 palavras | 20 páginas
  • Pesquisa sequencial e de pesquisa binária
    1484 palavras | 6 páginas